我想检查隐藏.git
文件夹是否存在。首先想到的是使用:
if [ -d "~/.git" ]; then
echo "Do stuff"
fi
但-d
显然不寻找隐藏文件夹。
我想检查隐藏.git
文件夹是否存在。首先想到的是使用:
if [ -d "~/.git" ]; then
echo "Do stuff"
fi
但-d
显然不寻找隐藏文件夹。
问题与波浪号在双引号内有关。
要使其扩展,您需要将波浪号放在引号之外:
if [ -d ~/".git" ]; then # note tilde outside double quotes!
echo "Do stuff"
fi
或者,正如 hek2mgl 在下面评论的那样,使用$HOME
代替~
:
if [ -d "$HOME/.git" ]
从波浪号扩展中的 POSIX :
“波浪号前缀”由单词开头的不带引号的字符组成,后跟单词中第一个不带引号的字符之前的所有字符,或者如果没有,则由单词中的所有字符组成。
来自双引号中的 POSIX :
用双引号 ( "" ) 括起来的字符应保留双引号内所有字符的字面值,但美元符号、反引号和反斜杠字符除外,如下所示:
您可以在为什么波浪号 (~) 不在双引号内展开?来自 Unix 和 Linux 堆栈。