GNU/Linux >> Tutoriels Linux >  >> Linux

Comment faire écho à un coup ! ?

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.


Linux
  1. /usr/bin Vs /usr/local/bin Sous Linux ?

  2. Bash =~ Regex et Https://regex101.com/?

  3. Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

  4. Quand dois-je utiliser #!/bin/bash et quand #!/bin/sh ?

  5. Comment bash teste-t-il 'faux'?

Comment utiliser la commande echo dans les scripts Bash sous Linux

Quelle est la différence entre #!/usr/bin/env bash et #!/usr/bin/bash ?

Exécutez la commande bash sur le pipeline jenkins

cmake --version pointe vers /usr/bin/cmake tandis que cmake pointe vers /usr/local/bin

Différence entre /bin et /usr/bin

#!/bin/sh vs #!/bin/bash pour une portabilité maximale