Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14218 > unrolled thread

Re: Bash don't interpret ~ path with multiple options.

Started byGreg Wooledge <wooledg@eeg.ccf.org>
First post2018-06-04 08:33 -0400
Last post2018-06-04 08:33 -0400
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Bash don't interpret ~ path with multiple options. Greg Wooledge <wooledg@eeg.ccf.org> - 2018-06-04 08:33 -0400

#14218 — Re: Bash don't interpret ~ path with multiple options.

FromGreg Wooledge <wooledg@eeg.ccf.org>
Date2018-06-04 08:33 -0400
SubjectRe: Bash don't interpret ~ path with multiple options.
Message-ID<mailman.1110.1528115628.1292.bug-bash@gnu.org>
On Sun, Jun 03, 2018 at 02:32:03PM -0400, Chet Ramey wrote:
> On 6/2/18 10:08 PM, Jungsub Shin wrote:
> > # 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.

> 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.

When in doubt, use "$HOME" instead of ~ to ensure that the expansion
will occur.

mount -o remount,append="$HOME"/test_aufs/ro1=ro+wh ~/test_aufs/mount

If you had been attempting to use ~user instead of ~ then I would
have recommended a temporary variable:

dir=~user/testaufs/ro1
mount -o remount,append="$dir"/test_aufs/ro1=ro+wh ~user/test_aufs/mount

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web