Подтвердить что ты не робот

Unix Bash Программирование оболочки, если существует каталог

Итак, я пытаюсь войти в оператор if в оболочке bash script, но я думаю, что я делаю что-то неправильно, так или иначе, здесь мой пример кода.

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

Я указываю его на правильный каталог? Я хочу, чтобы пользователь вводил что-то, что будет помещено в "sd", и если этот подкаталог существует, тогда он скажет, что это так, если нет, то он перейдет к else и скажет, что его не существует.

4b9b3361

Ответ 1

Try:

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

или

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

Цитата предотвращает расширение ~ в ваш домашний каталог.

Ответ 2

Попробуйте следующее: -

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