GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il motivo per cui uno Shebang punta a /bin/sh piuttosto che a /bin/bash?

Nella maggior parte degli script di shell che ho visto (oltre a quelli che non ho scritto personalmente), ho notato che shebang è impostato su #!/bin/sh . Questo non mi sorprende per gli script più vecchi, ma è presente anche per gli script abbastanza nuovi.

C'è qualche motivo per preferire /bin/sh su /bin/bash , poiché bash è praticamente onnipresente, e spesso predefinito, su molte macchine Linux e BSD risalenti a oltre un decennio fa?

Risposta accettata:

  1. Ci sono sistemi che non spediscono bash per impostazione predefinita (ad es. FreeBSD).
  2. Anche se bash è installato, potrebbe non trovarsi in /bin .
  3. Gli script più semplici non richiedono bash.
  4. L'utilizzo della shell POSIX è più portabile e gli script verranno eseguiti su una maggiore varietà di sistemi.

Linux
  1. Differenza tra /bin/false e /sbin/nologin

  2. Linux – Unire /usr/bin e /usr/sbin in /bin (gnu/linux)?

  3. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

  4. nozioni di base su grep

  5. ./configure :/bin/sh^M :pessimo interprete

cmake --version punta a /usr/bin/cmake mentre which cmake punta a /usr/local/bin

Quando devo usare #!/bin/bash e quando #!/bin/sh?

Differenza tra /bin e /usr/bin

Spostato il contenuto di /bin in /usr/bin, è possibile annullare?

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?

#!/bin/sh vs #!/bin/bash per la massima portabilità