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


14

quando digito:

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

funciona, então, após um minuto, na verdade, é emitido um som.

mas quando digito:

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

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

Respostas:


23

Os comandos executados em at 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 desconectado quando o comando é executado.

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

Se você deseja que um comando at interaja com seu terminal, é necessário usar um redirecionamento explícito. Por exemplo:

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.