[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wie kann ich ein bash script in einer ash shel durchfuehren ?


Hallo Christian,

ich wusste gar nicht, dass es dafuer von Patrick inzwischen ein Script gibt.
Ich habe mein SASL immer ohne eingerichtet ;-)

Am 21.02.2012 17:46, schrieb Christian Eichert [Gmail]:
> http://postfix.state-of-mind.de/patrick.koetter/saslfinger/saslfinger-0.9.9.1.tar.gz
> 
> 
> das ist aber ein bash Script und die normalo shel ist auf dem server ist
> eine ash shel
> 
> Syno> ./saslfinger
> ./saslfinger: line 17: declare: not found
> 
> wie kann ich ein bash Script in einer ash Shell durchfuehren ?
> 

Ich habe mir das Script mal runter geladen und angesehen. Du kannst es unter
ash nicht ausfuehren, da es Funktionen enthaelt, die ash so nicht unterstuetzt.
Das in Zeile 17 verwendete *declare* ist ein sogenanntes Shell Bulitin - also
ein Bestandteil der Shell und kein Binary auf dem System. Damit kann es auch
nicht von anderen Shells genutzt werden.

bash_$ type declare
declare is a shell builtin

ash_$ type declare
declare: not found

Ich habe mir mal ash installiert und es unter ash aufgerufen. Da wird es bei
mir sauber ausgefuehrt, da die bash installiert ist und dann automatisch
benutzt wird. Wenn ich das Script aber explizit mit der ash starte, dann
bekomme ich auf dem System die selbe Fehlermeldung (wie wenn bash nicht
installiert waere):

$ ash saslfinger -s
saslfinger: 17: declare: not found
saslfinger: 19: Syntax error: "(" unexpected

Du wirst also nicht drum herum kommen die bash zu installieren oder das Script
umzuschreiben. Eine installierte bash bedeutet ja noch nicht, dass du sie auch
als Standard-Shell nutzen musst und solange sie nicht benutzt wird verbraucht
sie auch keine Ressourcen - ausser ein paar KB im Filesystem ;-)

Gruss Tom
-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/