Hallo Sascha, * Sascha Andres schrieb am 03.Sep.2001:
nachdem ich man und abs-guide nach loesung durchsucht habe nun der letzte anker. ich versuche ein skript zu schreiben, dass je nach kernel version unterschiedliche dinge tut. ich habs mir in etwa so gedacht:
kernelvers='uname -r'
Falsche Hochkommata. So hast Du die Zeichenfolge uname -r so wie sie da steht, ohne jede Ersetzung in Deiner Variablen stehen, was Du willst ist: kernelvers=`uname -r` denn dann hast Du die Ausgabe des Befehls uname -r in Deiner Variablen stehen.
if [ left$("$kernelvers",3) = "2.4" ]
Nee. Das geht in der Shell nicht.
then fi if [ left$("$kernelvers",3) = "2.2" ] then fi
aber die zuweisung und das abschneiden des strings krieg ich nicht hin :-(
Brauchst Du doch auch gar nicht. Du bist doch in der shell, und die shell kann doch Wildcards. Insbesondere *. Möglich wäre doch: if [ $kernelvers = 2.4* ] then ... fi Noch besser, Du machst es mit der case-Anweisung: case $kernelvers in 2.4*) ... ;; 2.2*) ... ;; *) echo falsche Kernelversion;; esac Wichtig ist hierbei, daß man jede Möglichkeit mit ;; abschließt und das ganze mit esac. (so wie man if mit fi abschließt. ;)) In dem *)-Teil kommst Du erst, wenn Du niergends anders gelandet bist. Und * paßt auf alles. Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7