我想检查隐藏.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 关注
- 751 浏览
添加回答
举报
0/150
提交
取消