#!/bin/sh oder #!/bin/bash

Seite 1 von 1 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/bin-sh-oder-bin-bash_231991/page_1 - zur Vollversion wechseln!


davebastard schrieb am 11.10.2012 um 16:02

folgendes problem:

hab hier einen haufen alte bash-scripts die mit #!/bin/sh am anfang geschrieben wurden.
wenn ich sie auf neueren debian-systemen laufen lasse dann funktionieren sie nur wenn ich sie auf /bin/bash nach dem shebang umändere (#!/bin/bash)

/bin/sh ist übrigens ein symlink auf bash(/bin/sh -> bash).

trotzdem wird das anscheinend erkannt und dann von der bash ein spezieller sh-kompatibilitätsmodus gestartet, weswegen die ganzen skripts nicht mehr gehen.

Es dürfte sich da irgendwas geändert haben, vor noch nicht allzu langer zeit gings noch. (mir kommt vor bis zum welchsel auf dash als debian standard shell)

wie kann ich das konfigurieren dass die alten skripts trotzdem laufen ?
alle skripts umändern wäre relativ mühsam. (auch automatisiert)

edit: soweit ich das verstanden hab muss der POSIX-mode auch bei #!/bin/sh verwendet werden. nur wie erreich ich das ?


COLOSSUS schrieb am 11.10.2012 um 16:24

Vergiss alle Hacks, schreib auf den richtigen Interpreter um. bash ist nun mal nicht sh.

Ungetestet, als Anregung:

Code:
 find /path/to/dor/with/custom/shellscripts \( -iname "*.sh" -o -iname "*.bash" \) -exec sed -r -i.bak '1s@/bin/sh([[:blank:]]*)@/bin/bash\1@' {} +


davebastard schrieb am 11.10.2012 um 18:26

ok ich habs schon befürchtet,man findet auch nix gscheites dazu.
weißt du warum das erst seit kurzem ist ? wie wars vorher ?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024