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

Unterschied zwischen Befehlen im Bash-Skript und Befehlen im Terminal

Ihr Terminal führt eine Shell aus (höchstwahrscheinlich bash ), der nach Ihren Befehlen fragt und sie ausführt.

Neben diesem interaktiven Modus können Sie auch Ihre Shell verwenden, um Befehle aus einer Datei auszuführen. Um die Befehle in Ihrer Datei auszuführen, können Sie die Shell entweder direkt wie bash script aufrufen oder Sie können Ihre Datei mit einem "shebang" #!/bin/bash beginnen und ausführbar machen (chmod +x script ). Dann können Sie das Skript wie eine Binärdatei behandeln und beispielsweise als ./script ausführen oder platzieren Sie es an einem Ort, an dem Sie es suchen. (echo $PATH )

Höchstwahrscheinlich ist sowohl Ihre interaktive Shell als auch die zum Ausführen verwendete Shell bash .Aus der Perspektive eines "Linux-Lerners am ersten Tag" funktioniert bash in beiden Modi genau gleich. - Viel später stolpern Sie vielleicht über kleine Unterschiede. Wenn Sie es wirklich im Detail wissen wollen, würde ich vorschlagen, man bash zu lesen und suchen Sie nach Orten, die "interaktiv" erwähnen. (Sie können eine Handbuchseite durchsuchen, indem Sie / drücken .)

Es ist wichtig zu beachten, dass das Skript als neuer Prozess ausgeführt wird. Das bedeutet insbesondere, dass im Script gesetzte Variablen in der aufrufenden Shell nicht sichtbar sind.

$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$ 

Ohne den Export a ist nicht einmal für das innere Skript sichtbar.


Linux
  1. Unterschied zwischen den Befehlen „su“ und „su -“ in Linux

  2. Der genaue Unterschied zwischen einem „Terminal“, einer „Shell“, einem „tty“ und einer „Konsole“?

  3. Unterschied zwischen Login-Shell und Nicht-Login-Shell?

  4. Unterschied zwischen ' und ' in der Befehlszeile (bash)??

  5. Der Unterschied in der Verwendung zwischen Shell-Variablen und Umgebungsvariablen?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Unterschied zwischen einfachen und doppelten Anführungszeichen in Bash Shell

Was ist der Unterschied zwischen einer Konsole, einem Terminal und einer Shell?

Unterschied zwischen '{}' und {} im Find-Befehl?

Unterschied zwischen pts und tty

Unterschied zwischen 'ifconfig'- und 'ip'-Befehlen