确认主目录下是否存在目录

时间:2011-11-15 06:53:25

标签: shell directory quoting

我想检查目录的存在并编写下面的脚本,但这不能正常工作。

#!/bin/sh
if [ -d "~/sample" ]
then
    echo 'exists'
else
    echo 'NOT exists'
fi

下面的脚本可以正常工作。

#!/bin/sh
if [ -d "/home/user01/sample" ]
then
    echo 'exists'
else
    echo 'NOT exists'
fi

if [ -d "~/sample" ]出了什么问题?

1 个答案:

答案 0 :(得分:2)

是的,双引号是不允许〜扩展...以下将起作用:

if [ -d ~"/sample" ]; then
   echo "exists"
fi

通常最好使用:

if [ -d "$HOME/sample" ] ; then
   echo "exists"
fi

$ HOME通常由Bourne shell设置