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

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

In den meisten Shell-Skripten, die ich gesehen habe (außer denen, die ich nicht selbst geschrieben habe), ist mir aufgefallen, dass der Shebang auf #!/bin/sh gesetzt ist . Bei älteren Skripten überrascht mich das nicht wirklich, aber es ist auch bei ziemlich neuen Skripten vorhanden.

Gibt es einen Grund, /bin/sh zu bevorzugen? über /bin/bash , seit bash auf vielen Linux- und BSD-Rechnern seit weit über einem Jahrzehnt so ziemlich allgegenwärtig und oft Standard ist?

Akzeptierte Antwort:

  1. Es gibt Systeme, die Bash nicht standardmäßig liefern (z. B. FreeBSD).
  2. Auch wenn bash installiert ist, befindet es sich möglicherweise nicht in /bin .
  3. Die meisten einfachen Skripte benötigen keine Bash.
  4. Die Verwendung der POSIX-Shell ist portabler und die Skripte laufen auf einer größeren Vielfalt von Systemen.

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

  2. Ist ein Leerzeichen zwischen #! Und /bin/bash in Shebang?

  3. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

  4. grep-Grundlagen

  5. ./configure :/bin/sh^M :schlechter Interpreter

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

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

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wann muss ich #!/bin/bash und wann #!/bin/sh verwenden?

Unterschied zwischen /bin und /usr/bin

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?