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

use*_*083 13 unix linux bash shell

所以我试图在bash shell脚本中进入if语句,但我认为我做错了什么,反正这里是我的示例代码.

#!/bin/bash
read sd
if [ -d "~/tmp/$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
;;
Run Code Online (Sandbox Code Playgroud)

我指向正确的目录吗?我希望用户输入将被放入"sd"的内容,如果该子目录存在,那么它会说它确实存在,如果没有,那么它将转到其他地方并说它不存在.

Bar*_*mar 23

尝试:

if [ -d ~/tmp/"$sd" ]; then
Run Code Online (Sandbox Code Playgroud)

要么:

if [ -d "$HOME/tmp/$sd" ]; then
Run Code Online (Sandbox Code Playgroud)

引用可防止扩展~到主目录.