PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell-scripting für Dummies, wer kann mir helfen?



balduin222
07.01.06, 12:14
Hallo zusammen,
bin eine absolute Programmierniete. Ich bin mir sicher ihr könnt mir bei diesem pippi-script helfen.


#!/bin/sh

#Variable
ip=`/sbin/ifconfig eth1 | grep 'inet ' | cut -d : -f2 | cut -d ' ' -f1`

#if-Bedingung
if ["$ip" > "1"];
then echo hurra
fi


Wenn ich diesess Script ausführe kommt das hier
nb-debian:/home/balduin/scripts# sh test.sh
test.sh: line 7: [192.168.100.7: command not found
nb-debian:/home/balduin/scripts#

Ist wahrscheinlich nur irgendne Kleinigkeit, komme aber nicht weiter! Danke für eure Hilfe!!

mfg
balduin222

Sirius_Alpha
07.01.06, 12:21
Versuchs mal so (Leerzeichen zwischen den eckigen Klammern und dem Zeug dazwischen):
if [ "$ip" > "1" ];

Der Gestreifte
07.01.06, 12:27
Und nimm "-gt" statt ">".
">" leitet den Wert von $ip in die Datei 1 um.

balduin222
07.01.06, 12:43
Super, vielen Dank!!! Langsam werd ich zum Profi *g.

@Der Gestreifte
Wenn ich das mache, dann bekomme ich das hier:
nb-debian:/home/balduin/scripts# sh test.sh
test.sh: line 7: [: 192.168.100.7: integer expression expected
nb-debian:/home/balduin/scripts#

Was bewirkt "-gt"? ">" sollte "größer als" bedeuten. Danke schonmal für eure Bemühungen.

mfg
balduin222

Sirius_Alpha
07.01.06, 12:46
192.168.100.7 ist keine Zahl, wie willst du da überprüfen, ob das größer als 1 ist?

balduin222
07.01.06, 12:51
ja hast recht, ich möchte eigentlich nur das hier auf deutsch gesagt:

wenn in $ip was drin steht, dann "hurra"

Wie kann ich das realisieren? Danke nochmals!!


mfg
balduin222

Sirius_Alpha
07.01.06, 12:54
man test hilft:

[-n] STRING
the length of STRING is nonzero

balduin222
07.01.06, 13:19
Danke nochmal,
hab hier schon viel rumprobiert, aber ich bin einfach zu blöde dafür. Ich das jetzt so gemacht zum testen:


#!/bin/sh
set -xv
#Variable
ip=`/sbin/ifconfig eth0 | grep 'inet ' | cut -d : -f2 | cut -d ' ' -f1`

#if-Bedingung
if [ "test -[n]$ip" ] ;
then echo hurra
else echo shit
fi


es gibt auch kein Fehler, aber wenn in $ip nichst steht, sollte ich als ausgabe doch eigentlich "shit" bekommen oder? Es kommt aber immer "hurra"

mfg
balduin222

ninguno
07.01.06, 14:03
if [ "test -[n]$ip" ] ;du musst das entweder so
if [ -n "$ip" ] ;oder so
if test -n "$ip" ;machen. test und die eckigen klammern [ ] sind das selbe, du musst also entweder oder nehmen, nicht beides