Echo para rastrear sessão e arquivar

1

Eu quero executar o seguinte comando:

echo $RANDOM 2>&1 >> test.txt 

nesta sessão de tela:

screen -S test -X eval 'stuff "echo $RANDOM 2>&1 >> test.txt5"'

No entanto, em vez de executar, ecoa o seguinte:

echo  2>&1 >> test.txt

O que estou fazendo de errado?

Eu quero que o comando echo não apenas salve sua saída para test.txt , mas que realmente mostre essa saída para a tela também.

    
por Szymon Toda 29.12.2013 / 14:02

2 respostas

1

Você pode fazer assim:

screen -S test -X exec bash -c 'echo RANDOM=$RANDOM 2>&1 >> test.txt'

Se você quiser ver a saída e salvar ao mesmo tempo, use tee :

screen -S test -X exec bash -c 'echo RANDOM=$RANDOM 2>&1 | tee -a test.txt'
    
por 29.12.2013 / 14:19
0
$ screen -S test -X stuff 'echo \$RANDOM >> /tmp/test 2>&1\n'

Ou se você quiser duplicar a saída e gerenciá-la sem tee por algum motivo

$ screen -S shell -X stuff 'echo \$RANDOM 2>&1 | while read; do printf "%s\n" "\$REPLY"; printf "%s\n" "\$REPLY" >> /tmp/test; done\n'

Suponho que você deseja redirecionar para o arquivo stdin e stdout e seu 2>&1 >> test.txt foi um erro acidental.

    
por 29.12.2013 / 14:36