sh:目录存在时目录检查失败

时间:2014-01-23 19:25:36

标签: bash shell sh

我有以下代码来测试目录是否存在:

PROJECT="somedir"
if [ -d ~/migrations/$PROJECT ] ; then
    echo "Test"
fi

dst_dir="~/migrations/$PROJECT"
if [ -d "$dst_dir" ] ; then
    echo "Test 2"
fi

由于某种原因,它只输出 Test 。我希望它能输出 Test Test 2

shell脚本的新手,我错过了什么?我觉得它与~有关。

1 个答案:

答案 0 :(得分:4)

因为代字号~需要在引号之外。

尝试:

dst_dir=~/migrations/$PROJECT
引用时

~不会展开。

<强>测试

s="~"
ls "$s"
ls: ~: No such file or directory

s=~
ls "$s"
# list comes here