[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash in at command



On 05/10/22 15:07, Giuseppe Sacco wrote:
Il giorno mer, 05/10/2022 alle 14.36 +0200, Piviul ha scritto:
On 05/10/22 12:15, Giuseppe Sacco wrote:
[...]
Qualcosa del tipo:
$ echo "bash -c /path/completo/script" | at 06:15
in effetti così funziona però il comportamento mi sembra abbastanza
strano... da shell at legge l'interprete da utilizzare dal file stesso
mentre con l'opzione -f lo esegue con /bin/sh. Inoltre se apro una shell
sh ed eseguo uno script bash (con #!/bin/bash inserito nella prima riga)
o lancio lo stesso script con il comando con sh -c, in entrambi casi
viene utilizzato l'interprete bash.
In genere /bin/sh è un link ad una delle varie shell. Dovresti controllare
qual è e verificare che quell'interprete gestisca correttamente lo shebang.
(Nell'ipotesi che la shell si occupi dell'interpretazione dello shebang
anziché farlo fare alla chiamata «execve» del kernel.)

ecco come si chiama, shebang, non riuscivo a ricordarlo! Bene, grazie.

Comunque sia che si lanci lo script da shell at, con il comando at -f, direttamente da shell sh o con il comando sh -c, viene utilizzata sempre la stessa shell /bin/sh indipendentemente a cosa quel link simbolico punti quindi mi aspetto abbia sempre lo stesso comportamento invece at -f non legge lo shebang. Un workaround comunque me lo hai suggerito, mi accontento,

Probabilmente chiamare at con il parametro -f farà direttamente una chiamata «execve» (che non so cosa sia ma riporto quel che hai scritto tu) al kernel che mi sembra di aver capito non va a leggere la shebang dello script... quindi non si potranno nemmeno chiamare script in altri linguaggi (php, python etc...). Magari poi approfondisco.

Grazie!

Piviul


Reply to: