Por que meu comando 'at' clause executa o shell imediatamente e ignorou o limite de tempo?

4

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

touch 88888

O comando que estou usando é

sh t.sh | at 03:13Jun15

Depois de executar este comando, recebi esse show na minha tela:

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

Isso mostra claramente que isso será executado no Sun Jun 15 03:13:00 2014

Mas quando eu verifico minha pasta, e eu encontro um arquivo 88888 lá. Rmoved e tente novamente, ainda o mesmo resultado.

Quais são os problemas aqui? Seria uma coisa bash / sh? Porque eu vi, diz que vai executar por / bin / sh?

    
por Zen 11.06.2014 / 15:23

1 resposta

13

at lê os comandos da entrada padrão ou de um arquivo se você especificar o -f flag. 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 .

    
por Jos 11.06.2014 / 15:32