Unix Bash Shell Programming if directory exists

2019-03-18 12:18发布

问题:

So I'm trying to get into an if statement in a bash shell script but I think I'm doing something wrong, anyways here's my sample code.

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

Am I pointing it to the correct directory? I want the user to input something which will be put into "sd" and if that subdirectory exists then it'll say it does, if not then it will go to the else and say it doesn't exist.

回答1:

Try:

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

or:

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

Quoting prevents expansion of ~ into your home directory.



回答2:

Try this:-

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