On Thu, Sep 20, 2001 at 07:19:02AM +0200, Konrad Rosenbaum wrote:
probier mal "which unknownprog" das führt das Programm im Falle des Findens
which finde ich doof, weil es sowohl bei Erfolg als auch bei Mißerfolg 0 zurückliefert. Da müßte man also wirklich die Zeichenkette analysieren und das will man nicht.
nicht aus. Problem: die Ausgabe sieht auf allen Systemen anders aus: Linux gibt entweder den Pfad oder gar nix aus, HP-SUX sagt "program xyz not found in /bin /usr/bin .....".
Oder Du probierst es so: for prog in `echo $PATH|tr : ' '` ; do if test -x $prog && echo found ; done
Ich habe das immer so gemacht:
Test auf genau ein Programm mit bekanntem Pfad
[ -x $PROG ] && echo ja || echo nein
Test auf Programm in $PATH
hash 2>/dev/null $PROG && echo ja || echo nein
Das klappt weil bei linux /bin/sh 'hash' als builtin hat und sowas wie Solaris und Irix ein Extratool /usr/bin/hash. Auf meinem linux gibts kein externes hash - ist also auch nicht so die Superlösung falls jemand ash als /bin/sh auf linux hat.
Reinhard