0

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

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

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

 # test="~/dir/"

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

谢谢

4

2 回答 2

1

您的测试不适用于该变量,因为它包含波浪号( ~)。

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

test="${HOME}/dir"
[[ -d $test ]] && echo ok
于 2013-07-25T11:20:32.633 回答
0

更改# test="~/dir/"test=~/dir/,您应该很高兴。

于 2013-07-25T11:01:04.117 回答