Obtém a saída de texto dos comandos do shell script na tela durante a execução

0

Considere o seguinte script de shell

val=($ls)

O ls não fornece nenhuma saída de texto shell. Agora, como podemos obter o texto de saída na tela enquanto o comando está sendo executado?

Eu posso imprimir o valor de val para obter a saída, mas usar echo não é o ponto. Então, usando a seguinte linha não é o caso

echo $val

Então, em poucas palavras, como faço para que a saída do comando atual seja executada no shell simultaneamente, como se você tivesse executado o comando sozinho?

    
por about 99 ninjas 08.07.2017 / 09:21

2 respostas

1

Você pode fazer com que o shell faça o eco de tudo que está fazendo, executando o comando assim:

sh -x yourscript

Ou você pode adicionar isso como o primeiro comando no script:

conjunto x

Pode ser um pouco detalhado demais. Está tudo bem para a depuração, mas se você quiser uma saída seletiva, seria melhor fazer isso com cuidado colocando os comandos de eco.

    
por 08.07.2017 / 10:09
2

Você pode usar comandos tee para enviar uma cópia da saída padrão para um arquivo, e você pode usar o terminal atual como esse arquivo de saída. Como você pode ver a seguir, ele imprimirá duas vezes se você não usar a saída para nada, e uma vez se a saída padrão for engolida fazendo algo com ela:

$ echo foo | tee -a /dev/tty
foo
foo
$ echo foo | tee -a /dev/tty | grep bar
foo
    
por 08.07.2017 / 10:31