GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man einen Knall wiederholt!?

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.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. /usr/bin vs. /usr/local/bin Unter Linux?

  3. Bash =~ Regex und Https://regex101.com/?

  4. Wie verursacht man den Fehler „Argumentliste zu lang“?

  5. Gibt es einen Grund, einen Shebang zu haben, der auf /bin/sh statt auf /bin/bash zeigt?

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

grep-Grundlagen

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

cmake --version zeigt auf /usr/bin/cmake, während cmake auf /usr/local/bin zeigt

Chroot schlägt fehl - Befehl `/bin/bash' kann nicht ausgeführt werden:Keine solche Datei oder Verzeichnis