Я совсем новичок в 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;
Проблема в том, что теперь, когда я его запускаю, выход закрывает весь мой клиент. Есть ли способ обойти это?
Так как это первая ссылка при поиске в 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"