Ich habe versucht, ein Skript mit echo
zu erstellen ‘den Inhalt in eine Datei schreiben, anstatt sie mit einem Editor zu öffnen
echo -e "#!/bin/bash n /usr/bin/command args" > .scripts/command
Die Ausgabe :
bash:!/bin/bash:Ereignis nicht gefunden
Ich habe dieses seltsame Verhalten auf den Punkt gebracht.
$ echo !
!
$ echo "!"
bash: !: event not found
$ echo #!
#!
$ echo #!/bin/bash
bash: !/bin/bash: event not found
- Warum verursacht Bang das?
- Was sind diese "Ereignisse", auf die sich bash bezieht?
- Wie kann ich dieses Problem umgehen und „#!/bin/bash“ auf dem Bildschirm oder in meiner Datei ausgeben?
Akzeptierte Antwort:
Versuchen Sie es mit einfachen Anführungszeichen.
echo -e '#!/bin/bash n /usr/bin/command args' > .scripts/command
echo '#!'
echo '#!/bin/bash'
Das Problem tritt auf, weil bash seinen Verlauf nach !/bin/bash durchsucht. Die Verwendung von einfachen Anführungszeichen umgeht dieses Verhalten.