Нет wifi на Lenovo 500s-14ISK с Debian 8

Вы можете выполнить его в подоболочке с соответствующей ловушкой. Например, если вы хотите выполнить echo -e '\ nCommand done в конце while true; правда; done , вы можете использовать это:

mario@mario-K53SV:~$ (trap 'echo -e "\nCommand done"' EXIT; while true; do true; done)

Ловушка регистрирует команду, которую вы определили для события EXIT подоболочки. Скобки нужны для создания подоболочки. Имейте в виду, что если вы хотите обобщить это и поместить свои команды в переменные (например, MY_COMMAND = 'while true; do true; done' ), вам понадобится eval для выполнения их правильно. Этот пример вывода показывает, где именно это полезно (без eval это не сработало бы):

mario@mario-K53SV:~$ YOUR_COMMAND="while true; do true; done"
mario@mario-K53SV:~$ EXECUTE_ON_EXIT="echo -e '\nCommand done'"
mario@mario-K53SV:~$ (trap 'eval ${EXECUTE_ON_EXIT}' EXIT; eval ${YOUR_COMMAND})
^C
Command done

mario@mario-K53SV:~$

Если вы хотите, это также можно использовать для автоматического закрытия вашего терминала в конце команда обработчика EXIT: просто включите kill -s SIGHUP $$ в конце вашего обработчика (например, EXECUTE_ON_EXIT = "echo -e '\ nCommand done'; kill -s SIGHUP $$" ).

2
09.03.2019, 16:18
0 ответов

Теги

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