Por que o comando echo não funciona com o comando?

14

quando digito:

at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d

funciona, então depois de um minuto há realmente um som tocado.

mas, quando eu digito:

at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d

Não recebi resposta de erro do shell, mas depois de 1 minuto também não há texto exibido.

    
por Abdul Al Hazred 08.03.2015 / 00:54

1 resposta

23

Comandos executados por no não são executados no terminal em que foram registrados. Isso não faria sentido em geral: o terminal pode não existir mais, ou pode estar em uso por um usuário diferente. Você pode até ter logado quando o comando é executado.

A saída de um comando at é enviada para você por email. Esse e-mail local do Unix, não é qualquer conta POP ou IMAP externa que você tenha configurado em algum programa de e-mail. Se o seu email local não estiver configurado, a saída do comando será perdida. Se o seu e-mail local não estiver configurado, este guia pode ajudá-lo.

Se você quiser que um comando at interaja com o seu terminal, você precisa usar um redirecionamento explícito. Por exemplo:

echo "echo hello >$TTY" | at now + 1 min

Observe que, neste snippet, a variável TTY é expandida pelo shell, portanto, a entrada para at é algo como echo hello >/dev/pts/42 .

    
por 08.03.2015 / 01:20