Как сделать так, чтобы терминал автоматически закрывался при успешном выполнении команды?

Я хочу, чтобы терминал автоматически закрывался при успешном выполнении команды. Он не должен автоматически закрываться, если команда выдает какую-то ошибку.

Например:

Если я запускаю sudo apt-get install vlc, терминал должен автоматически закрываться, если пакет VLC устанавливается успешно. В противном случае он не должен закрываться.

1
задан 9 February 2014 в 10:41

2 ответа

используйте следующую команду

bind 'RETURN: ";if [[ $? == 0 ]]; then exit; fi;\n"'

, если вам нужно, чтобы она работала каждый раз, когда вы начинаете новый сеанс, добавьте эту команду в файл ~/.bashrc, а затем выполните source ~/.bashrc, чтобы она сразу вступила в силу.

, тогда, если вы введете

ls

, он будет автоматически заменен на

ls; if [[ $? == 0 ]]; then exit; fi;
0
ответ дан 9 February 2014 в 10:41

Просто поставьте && exit после команды, которую хотите выйти из терминала:

Пример:

sudo apt-get install vlc && exit

Объяснение:

&&      Run the next command if the preceding command exits with 0 (success)
exit    Exit the terminal or script

Это, вероятно, лучше чем выход, если любая команда выполнена успешно; вы, вероятно, хотите выполнить более одной команды в терминале.


Если вы действительно уверены, что терминал должен выходить после каждой успешной команды, используйте это в .bashrc:

bind 'RETURN: "\C-e ; [[ $? == 0 ]] && exit ;
"'

(убедитесь, что заключительные кавычки на новой линии)

0
ответ дан 9 February 2014 в 10:41

Другие вопросы по тегам:

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