Dalla differenza tra bash e sh :
Rispondi alla domanda: se hai
/bin/sh
come link bash, allora bash non si comporterà allo stesso modo quando viene chiamato così/bin/sh
come quando viene chiamato come/bin/bash
. Se chiamato comesh
, si limiterà principalmente alla conformità POSIX oltre a un set limitato di estensioni.
Vuol dire che ogni volta che mi imbatto in uno script di shell in Linux con una shebang a sh:, #!/bin/sh
anche se su quella distro, bin/sh
è un link simbolico a un'altra shell, come dash o bash, dovrebbe essere compatibile al 100% con la shell bourne, dal momento che si limita a una serie limitata di estensioni? Quindi potrei eseguirli in FreeBSD? C'è un'eccezione a questo? O dovrei essere sicuro di supporre che funzionerà?
Quindi, se su una distro, bin/sh
c'è un collegamento simbolico a bin/bash
, e uno script usa #!/bin/sh
e lo script contiene bashism, non funzionerà, dal momento che bash sarà come essere in modalità sh?