2014-01-06 5 views
2

Мне было интересно, можно ли удалить сообщения об ошибках из bash. Так, например, сценарий bash принимает пользовательский ввод, и если он правильно работает в терминале, он ничего не возвращает (он просто запускает команду), но если он терпит неудачу, он удаляет сообщение об ошибке и запускает другой скрипт. Первоначально я думал, что это возможно с помощью \ e [K, но это не сработает, я не думаю. || не работает, так как он все еще возвращает сообщение об ошибке перед запуском вторичной команды. Есть ли способ, которым я могу это сделать.Удалить сообщение об ошибке из bash

Благодаря Бен

ответ

2

Вы могли бы сказать:

bash script1 2>/dev/null || bash script2 

Это перенаправлять STDERR из script1 в /dev/null и выполнить script2 если бывший завершился с кодом состояния ненулевым.

+0

Да, что сработало, спасибо. Я буду использовать это. Но можно ли использовать код escape-кода ASCII какой-либо формы? Просто интересуюсь. – bd3dowling

+0

@ bd3dowling Я не уверен, что вы пытаетесь сказать. Обратите внимание, что сообщения _error_ из сценария будут записаны в 'STDERR', и вам придется либо перенаправить их в'/dev/null', чтобы избавиться от них, либо перенаправить их на 'STDOUT' и манипулировать им. – devnull

+0

Вижу, хорошо. Я получаю это сейчас. – bd3dowling

Смежные вопросы