I want to store /c/users/me/dir name
into a variable to pass it to cd
system call.
Works when typing:
$ cd \'/c/users/me/dir
While using a bash variable you should double-quote it to preserve its state.
x='/home/ps/temp/bla bla'
cd $x ### <----used without double quotes.
sh: cd: /home/ps/temp/bla: No such file or directory
cd "$x" ### <---While using a bash variable you should double-quote it to presever its state.
pwd
/home/ps/temp/bla bla
Double-quote your path variable with spaces, to preserve it,
dirName="/c/users/me/dir name"
cd "$dirName"
Actually, dirname
is a shell built-in, recommend using an alternate name to avoid confusion with the actual command.
From the man bash
page,
Enclosing characters in double quotes (‘"’) preserves the literal value of all characters within the quotes, with the exception of ‘$’, ‘`’, ‘\’, and, when history expansion is enabled, ‘!’.