Por que meu comando da cláusula 'at' executa o shell imediatamente e ignora o limite de tempo?

Por que meu comando da cláusula 'at' executa o shell imediatamente e ignora o limite de tempo?

Eu escrevi um shell chamadot.sh Seu conteúdo é:

touch 88888

O comando que estou usando é

sh t.sh | at 03:13Jun15

Depois de executar este comando, apareceu este show na minha tela:

warning: commands will be executed using /bin/sh
job 9 at Sun Jun 15 03:13:00 2014

Fica bem claro que isso será executado em Dom, 15 de junho, 03:13:00 de 2014

Mas quando verifico minha pasta, encontro um arquivo 88888 lá. Removi e tentei novamente, ainda o mesmo resultado.

Quais são os problemas aqui? Seria uma coisa bash/sh? Porque eu vi que será executado por /bin/sh?

Responder1

atlê comandos da entrada padrão ou de um arquivo se você especificar o -fsinalizador. O que sh t.sh | at [time]faz é:

1. execute the shell script t.sh *right now*; 
2. pipe the output of the shell script to at. 

Mas o script não tem saída, então não há nada para executar no domingo.

O que você quer é at 03:13Jun15 -f t.sh.

informação relacionada