J'ai essayé de créer un script par echo
‘ing le contenu dans un fichier, au lieu de l’ouvrir avec un éditeur
echo -e "#!/bin/bash n /usr/bin/command args" > .scripts/command
La sortie :
bash : !/bin/bash :événement introuvable
J'ai isolé ce comportement étrange au bang.
$ echo !
!
$ echo "!"
bash: !: event not found
$ echo #!
#!
$ echo #!/bin/bash
bash: !/bin/bash: event not found
- Pourquoi bang est-il à l'origine de cela ?
- Quels sont ces "événements" auxquels bash fait référence ?
- Comment contourner ce problème et afficher "#!/bin/bash" à l'écran ou dans mon fichier ?
Réponse acceptée :
Essayez d'utiliser des guillemets simples.
echo -e '#!/bin/bash n /usr/bin/command args' > .scripts/command
echo '#!'
echo '#!/bin/bash'
Le problème se produit car bash recherche dans son historique !/bin/bash. L'utilisation de guillemets simples évite ce comportement.