Мне было поручено создать сценарий автоматической защиты сервера, и единственное, что им нужно, - это отчет обо всех результатах выполнения каждой команды. Я хочу сохранить сообщение об ошибке внутри строки и добавить его в текстовый файл.
Допустим, я выполнил эту команду:
/sbin/modprobe -n -v hfsplus
Результат выполнения этого на моей машине будет:
FATAL: Module hfsplus not found
Как я могу сохранить это сообщение об ошибке в строке? Любая помощь будет принята с благодарностью. Благодарность!
Ответы:
Вы можете сделать это, перенаправив команду ошибки:
как сценарий
или
если вы хотите добавить ошибку, используйте
>>
вместо>
Обязательно используйте,
2>&1
а не2> &1
избегайте ошибки «синтаксическая ошибка рядом с неожиданным токеном` & '»источник
Просто хранить как строку в bash-скрипте:
Это может быть немного лучше, так как вы увидите сообщения при выполнении команды:
источник
Я фиксирую ошибку вот так
если источник не удался, я улавливаю ошибку и записываю it.log_warn - простая функция.
Кстати, я использую это в моих точечных файлах
источник
Для добавления в файл используйте
/sbin/modprobe -n -v hfsplus 2>> filename
источник
Более новые версии bash (т.е. bash 4.1+):
источник
Чтобы вернуть сообщение об ошибке в переменной, просто;
источник