J'ai essayé d'utiliser à at
partir d'un de mes scripts et il affiche:
avertissement: les commandes seront exécutées à l'aide de / bin / sh
Comment pourrais-je utiliser un shell différent si je le voulais?
Sous Linux, at
vous avertit toujours qu'il exécutera les commandes spécifiées avec /bin/sh
, plutôt que votre shell préféré. Vous ne pouvez pas supprimer ce message, il est codé en dur dans le code source.
La commande que vous passez est interprétée par /bin/sh
. Cette commande peut être le chemin vers un script si vous le souhaitez; puis /bin/sh
exécutera le programme de script, provoquant le lancement de l'interpréteur de script et l'interprétation du script. La langue du script est complètement indépendante du programme qui le démarre. Donc, par exemple, si vous souhaitez exécuter un script bash (c'est-à-dire un script qui commence par #!/bin/bash
), passez simplement le chemin d'accès au script at
et ignorez le message non pertinent.
vous pouvez l'exécuter à partir d'un autre shell en changeant le script shebang . Quelques lignes de shebang typiques:
#!/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
Pour exécuter un script à des moments donnés, je vous suggère d'ajouter un cronjob
Exemple:
La ligne suivante permet d'exécuter le programme utilisateur test.pl - ostensiblement un script Perl - toutes les deux heures, à minuit, 2 h, 4 h, 6 h, 8 h, etc.:
0 * / 2 * * * /home/username/test.pl
#!/usr/bin/perl
est déjà le shebang dans mon script mais je reçois l'avertissement#!/bin/sh
...?