Hallo zusammen,
ich schreibe gerade ein Script und dazu eine Funktion fürs Errorhandling.
Der Aufbau ist folgendermaßen:
setProfile.sh:
functions.sh:
Das Script das ausgeführt wird ist setProfile.sh Dies lädt die functions.sh und führt dann diverse Funktionen darin aus.
Mein Problem ist. Ich würde gerne den Error String in der Variable SCRIPTERR exportieren so dass dieser überall auslesbar ist. SCRIPTERR ist definitiv belegt, denn wenn ich sie zurückgeben und dann ausgebe funktioniert es. Wenn ich die Variable aber exportiere funktioniert es nicht. Ich kann sie weder von der aktuellen noch von irgendeiner anderen Shell aus auslesen weil sie nicht existiert.
Eine andere Lösung ist mir dazu nicht eingefallen. Aber falls jemand eine bessere Idee hat dies zu realisieren, ich bin offen für alles
EDIT:
Gleich noch eine 2. Frage.
Ich führe in diesem Script SNMP SET und GET auf um verschiedene Parameter zu setzen bzw. zu überprüfen. Allerdings habe ich das Problem, dass wenn der Parameter nicht existiert o.ä. wird der Fehler an STDERR übergeben.
Meine Versuche mit "> /dev/null 2>&1" waren aber bisher nicht erfolgreich dies abzublocken.
Hier mal ein Beispiel:
Sollten euch die Infos nicht ausreichen um das Problem zu beschreiben liefere ich gerne nach
Danke
Grüße
Tiberian
ich schreibe gerade ein Script und dazu eine Funktion fürs Errorhandling.
Der Aufbau ist folgendermaßen:
setProfile.sh:
Code:
...
FUNCFILE=$( grep "FUNCFILE" $CONFFILE | cut -d '=' -f2 )
. $FUNCFILE
RET=$( setProfile )
if [[ "$?" -gt "0" ]]
then
echo "Profil konnte nicht gesetzt werden"
exit 49
fi
functions.sh:
Code:
setProfile() {
....
if [ "$VAR" == "$PROFILE" ]
then
# Error Funktion aufrufen
error 1
return 76
fi
...
error() {
local ERRCODE CARDPORT
ERRCODE=$1
CARDPORT=$( getCardPort )
SCRIPTERR=$( eval echo $( cat $CONFFILE | grep "error($ERRCODE)" | cut -d"=" -f2 ) )
export SCRIPTERR
}
Das Script das ausgeführt wird ist setProfile.sh Dies lädt die functions.sh und führt dann diverse Funktionen darin aus.
Mein Problem ist. Ich würde gerne den Error String in der Variable SCRIPTERR exportieren so dass dieser überall auslesbar ist. SCRIPTERR ist definitiv belegt, denn wenn ich sie zurückgeben und dann ausgebe funktioniert es. Wenn ich die Variable aber exportiere funktioniert es nicht. Ich kann sie weder von der aktuellen noch von irgendeiner anderen Shell aus auslesen weil sie nicht existiert.
Eine andere Lösung ist mir dazu nicht eingefallen. Aber falls jemand eine bessere Idee hat dies zu realisieren, ich bin offen für alles
EDIT:
Gleich noch eine 2. Frage.
Ich führe in diesem Script SNMP SET und GET auf um verschiedene Parameter zu setzen bzw. zu überprüfen. Allerdings habe ich das Problem, dass wenn der Parameter nicht existiert o.ä. wird der Fehler an STDERR übergeben.
Meine Versuche mit "> /dev/null 2>&1" waren aber bisher nicht erfolgreich dies abzublocken.
Hier mal ein Beispiel:
Code:
RET=$( $SNMPGET -O ve $DSLAM Adsl2-MIB::adsl2LCnfgLineTemplate.$INTID0 | cut -d":" -f2 | tr -d ' ' )
Sollten euch die Infos nicht ausreichen um das Problem zu beschreiben liefere ich gerne nach
Danke
Grüße
Tiberian
Last edited by a moderator: