cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php
Alors quand j'exécute ce code depuis la console j'ai une valeur correcte pour $? et pour $ _
$? - status de sortie $ _ - Donne le dernier argument à la commande précédente. Au démarrage du shell, il donne le nom de fichier absolu du script shell en cours d'exécution.
Mais quand je mets ce code Cron:
crontab -e
*/1 * * * * cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php
j'ai reçu un vide $ _. S'il vous plaît aider. Je ne peux pas comprendre quel est le problème?
Est-ce que cron utilise bash, ou utilise-t-il sh? –
cron utilise sh, qui peut être une variante de bash sur la plupart des linux, mais est un tiret sur les plus récentes variantes d'ubuntu – Petesh
Eh bien, voici votre réponse. $ _ est un bash-isme, et cela ferait du bien à une personne de ne pas utiliser les bash-ismes dans des endroits où la syntaxe sh est garantie. –