Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #14452
| From | Chet Ramey <chet.ramey@case.edu> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: Tilde expansion in assignment-like context |
| Date | 2018-08-06 15:45 -0400 |
| Message-ID | <mailman.4767.1533584761.1292.bug-bash@gnu.org> (permalink) |
| References | <349F67EA-6EA7-4C8E-8E3A-AC36A82EBFBD@gmail.com> |
On 8/6/18 3:09 PM, Clint Hepner wrote: > Bash Version: 4.4 > Patch Level: 19 > Release Status: release > > Description: > A non-initial unquoted tilde is expanded outside of an assignment. This > was raised as a question on Stack Overflow, https://stackoverflow.com/q/51713759/1126841. > > Repeat-By: > > $ set +k > $ echo home_dir=~ > home_dir=/Users/chepner Yes. Bash has done this since its earliest days. A word that looks like an assignment statement has tilde expansion performed after unquoted =~ and :~ no matter where it appears on the command line. This makes things like make DESTDIR=~stager/bash-install or export PATH=/usr/local/bin:~/bin:/usr/bin easy and convenient. The first version I can find that implemented the =~ and :~ tilde expansion prefixes is bash-1.10 (1991). Those early versions would have expanded something like `--home_dir=~'. The first version that restricted it to words that satisfied the assignment statement restrictions is bash-2.0 (1996). Bash doesn't do this when it's in posix mode. The first version that implemented that was bash-1.14.0. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread
Re: Tilde expansion in assignment-like context Chet Ramey <chet.ramey@case.edu> - 2018-08-06 15:45 -0400
csiph-web