我会做一个简单的测试,以了解bash脚本中是否存在目录。
目录路径位于变量中
我的测试适用于文件路径,但不适用于变量。
# if [ -d $test ]; then echo ok; fi
# >> ### NO OUTPUT ###
# if [ -d ~/dir/ ]; then echo ok; fi
# >> ok
# echo $test
# >> ~/dir/
我通过以下方式定义变量mysef:
# test="~/dir/"
我不明白为什么它不适用于我的变量,而它包含相同的路径。
谢谢
答案 0 :(得分:1)
您的测试无法使用变量,因为它包含代字号(~
)。
您可以使用eval
,但建议的方法是在变量中使用${HOME}
而不是~
。尝试:
test="${HOME}/dir"
[[ -d $test ]] && echo ok
答案 1 :(得分:0)
将# test="~/dir/"
更改为test=~/dir/
,您应该好好去。