BASH测试存在目录,其中变量为路径

时间:2013-07-25 10:48:49

标签: bash testing

我会做一个简单的测试,以了解bash脚本中是否存在目录。
目录路径位于变量中 我的测试适用于文件路径,但不适用于变量。

 # if [ -d $test ]; then echo ok; fi 
 # >> ### NO OUTPUT ###
 # if [ -d ~/dir/ ]; then echo ok; fi 
 # >> ok
 # echo $test
 # >> ~/dir/

我通过以下方式定义变量mysef:

 # test="~/dir/"

我不明白为什么它不适用于我的变量,而它包含相同的路径。

谢谢

2 个答案:

答案 0 :(得分:1)

您的测试无法使用变量,因为它包含代字号~)。

您可以使用eval,但建议的方法是在变量中使用${HOME}而不是~。尝试:

test="${HOME}/dir"
[[ -d $test ]] && echo ok

答案 1 :(得分:0)

# test="~/dir/"更改为test=~/dir/,您应该好好去。