Estou procurando uma maneira de criar uma função personalizada em um dos arquivos de configuração, para que, quando abrir uma nova sessão, a mesma função personalizada possa ser avaliada (ou originada) e eu possa usar a função facilmente.
Eu tento criar uma função para verificar se ERROR
existe no meu arquivo de log, então quando eu verifico os arquivos de log, posso apenas digitar o nome da função e o nome do arquivo de log. Agora estou usando o grep:grep ERROR test.txt
Mas quero facilitar porque tenho muitos desses cheques. Então eu adiciono esta linha em .bashrc
:
ok(){grep ERROR $filename}
e quando uso a função, esperava digitar: ok test.txt
e deveria me dar as linhas ERROR, se houver.
No entanto, depois de avaliar o .bashrc
arquivo, recebi uma mensagem de erro:
-bash: .bashrc: line 16: syntax error: unexpected end of file
Depois de digitar: ok test.txt
, ele fornece:
-bash: ok: command not found
Alguém pode me ajudar com essa função personalizada? Ou devo colar meu código em outro arquivo de configuração como .bashrc-profile
?
Muito obrigado antecipadamente!
O shell é muito exigente quanto à sintaxe e aos espaços em branco com a
{ ... }
construção. Essas duas maneiras de configurar essa função funcionariam:Com relação a colchetes
{ .. }
versus parênteses( .. )
, o manual do Bash afirma que :e
Lista refere-se aos comandos dentro das chaves, e tudo isso se aplica onde quer que
{ ... }
seja usado, mas as funções são provavelmente o lugar mais comum.Além disso, se você quiser fornecer o nome do arquivo como parâmetro para a função, use
$1
dentro dele. ou sejaok() { grep ERROR "$1"; }
, poderia ser usado comook test.txt
.não precisa ser assim, você se sentiria livre e se beneficiaria muito disso
o terceiro uso encontrará todas as linhas com string de 'erro' em todos os arquivos com extensão de log e txt em todos os diretórios no diretório atual
o quarto encontrará todas as linhas com string de 'erro' ou 'aviso' em todos os arquivos com extensão de log e txt todos os diretórios no diretório atual
o 5º encontrará todas as linhas com string de 'erro' em todos os arquivos chamados logdata com qualquer nome de extensão em todos os diretórios no diretório atual