[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bash don't interpret ~ path with multiple options.
From: |
Chet Ramey |
Subject: |
Re: Bash don't interpret ~ path with multiple options. |
Date: |
Sun, 3 Jun 2018 14:32:03 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 6/2/18 10:08 PM, Jungsub Shin wrote:
> When i try mount aufs, i find some problem with bash.
>
> # mount -o remount,append=~/test_aufs/ro1=ro+wh ~/test_aufs/mount
>
> mount failed with ~/test_aufs/ro1 path isn't exist message.
> So i try to debug with strace and i find out bash don't replace ~
> path to absolute path.
>
> So i try again with split options lile below.
>
> # mount -o remount -o append=~/test_aufs/ro1=ro+wh ~/test_aufs/mount
>
> It works well. is this bug??
No. Tilde expansion happens at the beginning of a word or after the `='
and every `:' on the rhs of an assignment statement. Bash extends this to
words that satisfy the criteria for assignment statements but appear as
arguments to a command (so things like `export DIR=~/foo' work). The
`remount,append=...' word does not satisfy the requirements for an
assignment statement, since the characters before the `=' don't make up
a valid shell identifier, so the tilde doesn't get expanded.
--
``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/