我有以下代码来测试目录是否存在:
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脚本的新手,我错过了什么?我觉得它与~
有关。
答案 0 :(得分:4)
因为代字号~
需要在引号之外。
尝试:
dst_dir=~/migrations/$PROJECT
引用时 ~
不会展开。
<强>测试强>
s="~"
ls "$s"
ls: ~: No such file or directory
s=~
ls "$s"
# list comes here