Hi, 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' if [ left$("$kernelvers",3) = "2.4" ] then fi if [ left$("$kernelvers",3) = "2.2" ] then fi aber die zuweisung und das abschneiden des strings krieg ich nicht hin :-( ciao sascha
Hallo Sascha, * Sascha schrieb:
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' kernelvers=$(uname -r)
oder eben back ticks "`" und nicht einfache Hochkommata.
if [ left$("$kernelvers",3) = "2.4" ] if [ left${kernelvers::3} == "left2.4" ]
(was soll das "left" da?) [...]
aber die zuweisung und das abschneiden des strings krieg ich nicht hin :-(
Gruß christian
On Mon, 2001-09-03 at 23:15, Sascha Andres wrote:
Hi, 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: Ist das Basic? Sh ist es jedenfalls nicht .. ;)
kernelvers='uname -r' if [ left$("$kernelvers",3) = "2.4" ] then fi if [ left$("$kernelvers",3) = "2.2" ] then fi
Eine Möglichkeit: #!/bin/sh vers=`uname -r` case $vers in 2.2.* ) # tu was ;; 2.4.* ) # tu was anderes ;; esac Ralf
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
participants (4)
-
B.Brodesser@t-online.de
-
Christian Schult
-
Ralf Corsepius
-
Sascha Andres