具有空白字符的bash环境变量。 cd没有引号

时间:2016-04-29 12:06:07

标签: linux bash shell unix whitespace

我试图在bash中成功使用以下内容:

mkdir "any dir"
export DIR="any dir"
cd $DIR

它给了我-bash: cd: any: No such file or directory

我知道它适用于

cd "$DIR"

但我不想使用它,因为我不想触摸的大量脚本使用cd $DIR

用bash真的没办法实现这个目标吗?甚至Windows提示也可以通过

来实现
mkdir "any dir"
set DIR=any^ dir
cd %DIR%

2 个答案:

答案 0 :(得分:1)

一种可能的方法是使用[[:blank:]]而不是像这样的空格:

export DIR='any[[:blank:]]dir'
cd $DIR

现在它可以正常工作,因为shell不会将any[[:blank:]]dir视为2个不同的参数。

[[:blank:]]是POSIX属性,匹配空格或制表符。

答案 1 :(得分:0)

只需在"之间添加DIR;字符。

mkdir "any dir"
export DIR="any dir"
cd "$DIR"   ## change $DIR to "$DIR"