sed 's/\#.*$'//' /path/to/logfile # this will trim anything including and after a `#` on every line.
Обычно в сценарии оболочки даже строка, генерирующая ошибку, не останавливает выполнение сценария оболочки. Он просто перейдет на следующую строку.
Заметное исключение - если вы установили флаг для выхода из оболочки в случае сбоя какой-либо подкоманды. Иногда это делается путем добавления "set -e" в верхней части скрипта. Если у вас есть что-то подобное в вашем скрипте, он будет прерван любой командой в скрипте, возвращающей ошибку. Возможные варианты в этом случае:
Удалить эту опцию. Это может иметь разветвления для остальной части вашего сценария, поэтому не делайте этого по прихоти.
Отключите эту опцию для раздела скрипта, в котором вы находитесь, затем снова включите, чтобы продолжить:
set + e
zip -d archive.zip file.txt
set -e
Обеспечьте выход для сбойной строки, чтобы оболочка считала команду успешной, даже если что-то не удалось. Это можно сделать разными способами, но один простой - использовать оператор ИЛИ:
zip -d archive.zip file.txt || истинный
Это запустит команду zip, но в случае неудачи запустит истинную команду, и родительская оболочка получит от нее код возврата (что, конечно, является успехом). Иногда вы можете увидеть это написанное ||:
, что немного быстрее и сложнее, но не волшебно; :
просто является встроенной в оболочку командой no-op, которая также возвращает код ошибки успеха, даже если она ничего не делает.
Другой способ сделать это - запустить команду во вспомогательной оболочке, заключив ее в ()
, чтобы хотя команда внутри нее могла завершиться неудачно, подоболочка выполнила свою работу, поэтому родительский сценарий с набором set -e
не умрет. Это неоптимально для одной команды, но может быть полезно, если вы хотите запустить целый набор вещей.
С другой стороны, если вы просто хотите подавить сообщение об ошибке, генерируемое zip, вы можете перенаправить поток стандартных ошибок в / dev / null с помощью ( 2> / dev / null
), чтобы подавить сгенерированные сообщения (или закройте его с помощью 2> & -
).