if cd $userInput*; then
cd ..
echo "It is a directory."
else
# the cd will do the rest of informing for you
fi
Я также настоятельно рекомендую превратить это в файл и получить пользовательский ввод в командной строке, например:
bash ./yourcode.sh filename
Внутри вашего кода:
if cd $1*; then
cd ..
echo "It is a directory."
else
# the cd will do the rest of informing for you
fi
РЕДАКТИРОВАНИЕ: ДОПОЛНИТЕЛЬНО
Продолжайте здесь, если вы действительно хотите понять, что произошло. В bash каждая команда / функция по умолчанию возвращает значение, которое сообщает ядру, было ли оно успешно завершено или что-то пошло не так, для простоты мы будем просто предполагать, что оно возвращает true
в случае успеха и false
, если нет, здесь я использовал эту информацию с функцией cd
, которая изменяет текущий каталог на указанный, если изменение произошло успешно, он вернет true
, который затем я запишу в своем операторе if
для выполнения кода , который состоит из возврата в исходный каталог (cd ..
) и сообщения пользователю, что это каталог. В противном случае cd
вернет false и сам скажет вам, что произошло, был ли это файл или он вообще не существует, а *
(подстановочный знак) существует, чтобы найти любое расширение, которое он может иметь или даже не иметь. Я надеюсь, что это помогает, ура!