GNU/Linux >> Znalost Linux >  >> Linux

Není důvod mít Shebang ukazující na /bin/sh spíše než /bin/bash?

Ve většině shellových skriptů, které jsem viděl (kromě těch, které jsem sám nenapsal), jsem si všiml, že shebang je nastaven na #!/bin/sh . U starších skriptů mě to vlastně nepřekvapuje, ale je to i u docela nových skriptů.

Existuje nějaký důvod, proč preferovat /bin/sh přes /bin/bash , protože bash je do značné míry všudypřítomný a často výchozí na mnoha počítačích se systémem Linux a BSD, které se datují více než deset let?

Přijatá odpověď:

  1. Existují systémy, které standardně nedodávají bash (např. FreeBSD).
  2. I když je bash nainstalován, nemusí být umístěn v /bin .
  3. Většina jednoduchých skriptů nevyžaduje bash.
  4. Použití shellu POSIX je přenosnější a skripty poběží na více různých systémech.

Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

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

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. základy grep

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?

  1. cmake --version ukazuje na /usr/bin/cmake, zatímco který cmake ukazuje na /usr/local/bin

  2. Kdy musím použít #!/bin/bash a kdy #!/bin/sh?

  3. Rozdíl mezi /bin a /usr/bin