Datum: 2002-07-03
Quelle: suse-linux
Es gibt Programme und Scripts. Unter diesen wiederum gibt es Shell-, Perl-, PHP-, Python-, ... Scripts. Nicht immer kann man sie einfach durch den Aufruf der Script-Datei starten (z. B. wenn das executable-Flag nicht gesetzt ist). In diesem Fall kann man auf Informationen des file-Kommandos oder ganz ordinär auf die magische erste Zeile #! /pfad/zum/intepreter des Scripts zugreifen. Das folgende Schnipselchen vereinigt beide Ideen.
ls $dir | while read f; do
test -f "$f" || continue
ftype="`file -b $f"
if echo $ftyp | grep -q 'ELF 32-bit LSB executable'; then
# Binary
"verzeichnis/$f"
elif echo $ftyp | grep -q 'perl script text'; then
# perl script
$perl "$f"
elif echo $ftyp | grep -q 'Bourne-Again shell script text'; then
# shell script
$shell "$f"
elif echo $ftyp | grep -q 'script text'; then
# script: get interpreter
prog="`head -1 \"$f" | sed 's/^#!//'`"
$prog "$f"
# ...
fi
done
Das Script startet alle aufgefundenen Programme / Scripts in einem Verzeichnis. Es ist ein Gerüst für den Aufbau eigener Programme, kein ablauffähiges Programm.