#!/bin/sh oder #!/bin/bash
davebastard 11.10.2012 - 16:02 1711 2
davebastard
Vinyl-Sammler
|
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 ?
Bearbeitet von davebastard am 11.10.2012, 16:15
|
COLOSSUS
AdministratorGNUltra
|
Vergiss alle Hacks, schreib auf den richtigen Interpreter um. bash ist nun mal nicht sh. Ungetestet, als Anregung: 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
Vinyl-Sammler
|
ok ich habs schon befürchtet,man findet auch nix gscheites dazu. weißt du warum das erst seit kurzem ist ? wie wars vorher ?
|