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'
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.
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'
$ 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.
Tags gnu-screen terminal