13

所以我试图进入 bash shell 脚本中的 if 语句,但我认为我做错了什么,无论如何这是我的示例代码。

#!/bin/bash
read sd
if [ -d "~/tmp/$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
;;

我是否将其指向正确的目录?我希望用户输入将放入“sd”的内容,如果该子目录存在,那么它会说它存在,如果不存在,那么它会转到 else 并说它不存在。

4

2 回答 2

23

尝试:

if [ -d ~/tmp/"$sd" ]; then

或者:

if [ -d "$HOME/tmp/$sd" ]; then

引用可防止扩展~到您的主目录。

于 2013-09-29T06:19:08.907 回答
4

试试这个:-

#!/bin/bash
read sd
if [ -d ~/tmp/"$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
于 2013-09-29T06:18:59.347 回答