У меня есть это:Как сохранить возвращаемое значение cd?
cd $dir
if[ $? -eq 0 ]; then ...
else echo "The directory doesn't exist"; exit -1;
fi
И то, что я хочу, что если CD возвращает ошибку (на 1-й линии) ошибка не будет отображаться оболочкой. Мне нужно только показать сообщение, которое я написал. я пытался сделать:
ret=$(cd $dir)
Но это не работает. Как мне это сделать?
Синтаксис '$ (...)' фиксирует * вывод * команды, а не ее статус. –
Спасибо за разъяснение. – LiLou1
На самом деле вы не хотите печатать свое сообщение. Вы действительно предпочли бы, чтобы cd выдавал сообщение об ошибке. Ошибка может быть не в том, что каталог не существует, и в этом случае ваше сообщение об ошибке неверно. Просто напишите: cd $ dir || выход -1. (Или просто установите set -e) –