Fui encarregado de criar um script automatizado de proteção de servidor e uma coisa de que eles precisam é um relatório de toda a saída de cada comando executado. Eu quero armazenar a mensagem de erro dentro de uma string e anexá-la em um arquivo de texto.
Digamos que eu executei este comando:
/sbin/modprobe -n -v hfsplus
A saída de executar isso na minha máquina seria:
FATAL: Module hfsplus not found
Como posso armazenar essa mensagem de erro dentro de uma string? Qualquer ajuda seria muito apreciada. Obrigado!
Respostas:
você pode fazer isso redirecionando o comando de erros:
como um script
ou
Se você deseja anexar o erro, use em
>>
vez de>
Certifique-se de usar
2>&1
e não2> &1
evitar o erro "erro de sintaxe próximo ao token inesperado` & '"fonte
Simplesmente para armazenar como uma string no script bash:
Isso pode ser um pouco melhor, pois você verá mensagens quando o comando for executado:
fonte
Capto um erro como este
se a fonte falhar, capturarei o erro e o registrarei.log_warn é apenas uma função simples.
BTW, eu uso isso nos meus dotfiles
fonte
Para anexar a um arquivo, use
/sbin/modprobe -n -v hfsplus 2>> filename
fonte
Versões mais recentes do bash (ie bash 4.1+):
fonte
Para retornar a mensagem de erro em uma variável, simplesmente;
fonte