Как установить код возврата из командной строки без выхода из клиента SSH?

Я совсем новичок в Unix, и сейчас мне нужно сделать псевдоним, который проверяет, является ли файл регулярным и читаемым. Если он нерегулярный, то мне нужно вернуть 1 в качестве кода выхода и не проверять, читаем ли он. Если файл не читается, то нужно вернуть 2 в качестве кода выхода.

alias test="if [ ! -f filename ] ; then echo 'Irregular file'; exit 1 ; fi; if [ ! -r filename ]; then echo 'Unreadable file'; exit 2; fi;

Проблема в том, что теперь, когда я его запускаю, выход закрывает весь мой клиент. Есть ли способ обойти это?

0
02.10.2016, 22:59
1 ответ

Так как это первая ссылка при поиске в Google:

Если вы заключаете выход в скобки

(exit 2)

, тогда он установит код возврата, выйдя из оболочки sub -в скобках, и не выйдет из вашей текущей оболочки. Затем вы можете проверить этот код, используя $? как обычно

alias mytest="if [ ! -f filename ] ; then echo 'Irregular file'; (exit 1) ; elif [ ! -r filename ]; then echo 'Unreadable file'; (exit 2); fi"
2
06.03.2020, 08:26

Теги

Похожие вопросы