如果目录存在,则使用Unix Bash Shell编程

时间:2013-09-29 06:15:34

标签: linux bash shell unix

所以我试图在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”的内容,如果该子目录存在,那么它会说它确实存在,如果没有,那么它将转到其他地方并说它不存在。

2 个答案:

答案 0 :(得分:23)

尝试:

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

或:

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

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

答案 1 :(得分:4)

试试这个: -

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