我想檢查隱藏.git文件夾是否存在。首先想到的是使用:if [ -d "~/.git" ]; then echo "Do stuff"fi但-d顯然不會尋找隱藏的文件夾。
1 回答

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
問題與波浪號在雙引號內有關。
為了擴展它,您需要將波浪號放在引號之外:
if [ -d ~/".git" ]; then # note tilde outside double quotes!
echo "Do stuff"
fi
或者,如下面hek2mgl所述,使用$HOME代替~:
if [ -d "$HOME/.git" ]
從Tilde的 POSIX 擴展中:
“波浪號前綴”由單詞開頭的未加引號的字符組成,后跟單詞中第一個未加引號的所有字符,或者如果沒有則由單詞中的所有字符組成。
從POSIX中用雙引號引起來:
用雙引號(“”)引起來的字符應保留雙引號中所有字符的文字值,但以下字符除外:美元符號,反引號和反斜杠:
您可以在為什么代字號(?)不能在雙引號內展開找到更多說明。來自Unix&Linux Stack。
- 1 回答
- 0 關注
- 789 瀏覽
添加回答
舉報
0/150
提交
取消