1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
597
597
EMPFEHLEN
-
06.05.10 14:49 #1
Ich hab hier ein sicher banales Problem, ich fliege immer per exit 4 aus dem Programm, $ERROR bekommt nie den Wert 0. Hat jemand eine Idee, an was das liegen könnte?
Beispielinhalt der .data
Code :1 2 3
benutzername=passwort test=test hallo=hier
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/bin/bash -x extractPasswd() { THENAME=$1 ZERO=0 ERROR=1 # read corresponding password FILE=~/.data if [ -s $FILE ]; then cat $FILE | while read LINE; do USR=${LINE%=*} # extracts the username PW=${LINE#*=} # extracts the password # correct user found, exit if [ "$THENAME" == "$USR" ]; then ERROR=0 break; fi done fi # check for errors if [ $ERROR -ne $ZERO ]; then exit 4; fi }Geändert von Alex Duschek (07.05.10 um 08:00 Uhr)
-
06.05.10 15:01 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Dadurch, das du das while in einer Pipe verwendest wird das in einer Subshell ausgeführt. Änderungen an Variablen in der Subshell wirken sich nicht auf Variablen der "Ober"-Shell aus.
Man sollte sowieso versuchen sowenig externe Programme wie möglich aufzurufen. In dem Fall kann man einfach eine Umleitung verwenden:
Du könntest dir auch diese ERROR Variable sparen und einfach return 0 in der Schleife aufrufen und nach der Schleife return 1 (\edit: bzw. exit 4)Code bash:1 2 3
while read LINE; do ... done < $FILE
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
06.05.10 15:10 #3
Jup, daran lags, danke!
PS: Irgendwer muss meinen Thementitel gestohlen haben
Ähnliche Themen
-
Bash Script
Von Spranta im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 23.06.08, 12:52 -
Bash <TAB>
Von kevkev im Forum Linux & UnixAntworten: 6Letzter Beitrag: 18.01.06, 19:05 -
Bash Zufallszahl
Von kevkev im Forum Linux & UnixAntworten: 4Letzter Beitrag: 15.01.06, 16:32 -
Bash Regex
Von kevkev im Forum Linux & UnixAntworten: 3Letzter Beitrag: 09.01.06, 21:14 -
C vs bash
Von webfreak im Forum Linux & UnixAntworten: 1Letzter Beitrag: 04.04.04, 10:23





Zitieren
Login





