Por que 'at' me avisa que os comandos serão executados usando / bin / sh? E se eu quiser um shell diferente?

8

Eu tentei usar at dentro de um script meu e imprime:

warning: commands will be executed using /bin/sh

Como eu usaria um shell diferente se eu quisesse?

    
por Cratylus 08.08.2013 / 22:40

2 respostas

13

No Linux, at sempre avisa que ele executará os comandos especificados com /bin/sh , em vez do seu shell favorito. Você não pode suprimir essa mensagem, ela está codificada no código-fonte.

O comando que você passa é interpretado por /bin/sh . Este comando pode ser o caminho para um script, se você quiser; então /bin/sh executará o programa de script, fazendo com que o interpretador do script seja iniciado e interprete o script. A linguagem do script é completamente independente do programa que a inicia. Portanto, se, por exemplo, você quiser executar um script bash (por exemplo, um script que começa com #!/bin/bash ), basta passar o caminho para o script para at e ignorar a mensagem irrelevante.

    
por 09.08.2013 / 02:18
4

você pode conseguir executá-lo a partir de um shell diferente, alterando o script shebang . Algumas linhas típicas de shebang:

#!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell
#!/bin/csh -f — Execute the file using csh, the C shell,
#!/usr/bin/perl -T — Execute using Perl with the option for taint checks
#!/usr/bin/php — Execute the file using the PHP command line interpreter
#!/usr/bin/python -O — Execute using Python with optimizations to code
#!/usr/bin/ruby — Execute using Ruby

Para executar um script em determinados momentos, sugiro que você adicione um cronjob

Exemplo:

The following line makes the user program test.pl—ostensibly a Perl script—run every two hours, at midnight, 2am, 4am, 6am, 8am, and so on:

0 */2 * * * /home/username/test.pl

    
por 08.08.2013 / 22:57

Tags