La ligne de code mentionnée ci-dessous utilisée pour moi tout le temps sur une distribution Ubuntu 16.04, mais soudainement l'option-nom pipefail
est une option illégale:
set -eu -o pipefail
retour:
ensemble: option illégale -o pipefail
Pourquoi cela arrive-t-il? J'exécute la commande sur un système installé totalement installé et dans le cadre d'un script shell. Le code est placé juste au début:
myscript.sh:
1 #!/bin/bash
2 set -eu -o pipefail
3 ...
Le script est exécuté comme sudo:
Sudo sh ./myscript.sh
Tu cours bin/sh
, sur Ubuntu c'est un lien symbolique pointant vers /bin/dash
, mais pipefail
est un bashisme.
Rendre le script exécutable:
chmod +x myscript.sh
puis exécutez le script comme suit:
Sudo ./myscript.sh
J'ai eu la même erreur lors de l'exécution du script de zsh
et le script a commencé avec incorrect shebang.
Mal, manquant !
après #
:
#/bin/bash
rest-of-the-script
Correct:
#!/bin/bash
rest-of-the-script