2013-07-25 18 views
0

我會做一個簡單的測試來知道一個目錄是否存在於bash腳本中。
目錄路徑在一個變量中。
我的測試適用於文件的路徑,但不適用於變量。
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

無需在標題@Quentin中添加「已解決」。當您將答案標記爲已接受時,很明顯。 – fedorqui

回答

1

您的測試不適用於該變量,因爲它包含代字號~)。

您可以使用eval,但推薦的方法是在變量中使用${HOME}而不是~。請嘗試:

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

變化# test="~/dir/"test=~/dir/,你應該是好去。

+0

...感謝您的幫助,它工作正常:) –

相關問題