Exibe a saída do comando executada no bash como está executando

0

Eu tenho uma linha no meu script bash assim:

echo "'some_command'"

Agora, some_command é executado por cerca de 1 a 2 minutos e continua imprimindo alertas / mensagens nesse intervalo.

O problema é quando eu executo o meu script bash, o script não tem saída para 1-2min e, em seguida, exibe diretamente a saída após a execução completa de some_command .

Como posso fazer meu script bash exibir some_command enquanto ele está sendo executado? Existe uma maneira de fazer isso?

    
por JRodDynamite 04.12.2017 / 12:43

2 respostas

1

xtrace

Você pode definir a opção xtrace (normalmente usada para depurar scripts de shell ) antes de executar o comando (não é necessário usar a substituição de comando). Além disso, não esqueça de cancelar a opção depois.

set -x
some_command
set +x

Exemplo:

$ set -x; sleep 2 && echo fin; set +x
+ sleep 2
+ echo fin
fin
+ set +x

echo

Se você achar que a saída do xtrace está muito confusa, você pode simplesmente echo o nome do comando antes:

echo some_command
some_command
    
por Anthony Geoghegan 04.12.2017 / 13:55
1

Substituir:

echo "'some_command'"

Com:

some_command

Os backticks não são úteis aqui, então podem ser dispensados. Eles só seriam bons se a coisa necessária fosse resumir de alguma forma a saída após estar completa.

    
por agc 10.12.2017 / 10:34