Como redirecionar mensagens de erro para o arquivo de log em um script de shell

0

Estou executando o comando abaixo para armazenar arquivos / diretórios correspondentes, no entanto, se eu não encontrar nenhuma correspondência, estou recebendo mensagens de erro no console

 matching_files='ls -d $log_dir/$pattern'

ls: cannot access /logs/archive_file*: No such file or directory
ls: cannot access /logs/archive_dir*: No such file or directory

Eu quero registrar esses erros em um arquivo em vez de exibir no console Como conseguir isso no script de shell?

    
por user 25.01.2017 / 21:58

1 resposta

0

Você não deveria estar usando ls . Eu suponho que você esteja usando o bash. Vamos apenas usar os caracteres de globalização de shell para armazenar os arquivos em uma matriz:

matching_files=( $log_dir/$pattern )
if [[ "${#matching_files[@]}" -eq 0 ]]; then
    echo "no files found"
else
    echo "I found these matching files:"
    printf "%s\n" "${matching_files[@]}"
fi

for file in "${matching_files[@]}"; do
    do_something_with "$file"
done
    
por 25.01.2017 / 22:48