Rückgabewert Script

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 12:11:20

Hi ich habe ein Script geschrieben mit dialog und hab es wohl kaputt gemacht. Leider so das weder ich noch mein Ausbilder es nachvollziehen können.

Ich bekomme bei "echo $?" den Rückgabewert 255 ... Kann irgendjemand damit was anfangen?

Grüße

duke83
Beiträge: 39
Registriert: 18.06.2007 19:09:43
Lizenz eigener Beiträge: MIT Lizenz

Re: Rückgabewert Script

Beitrag von duke83 » 03.04.2009 12:43:29

*Glaskugelmodus an*
Dass könnten die Zugriffsrechte von einer Datei bzw einem Verzeichnis sein. Oder irgend ein Fehlercode von irgend einem aufgerufenen Programm.
*Glaskugelmodus aus*

Aber jetzt mal im Ernst.

Woher soll dir hier irgendjemand erklären können was der Rückgabewert von deinem Script zu bedeuten hat wenn du nicht mal Ansatzweise erklärst was dein Script überhaupt tut? :roll:
„Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wie viel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen.“

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Rückgabewert Script

Beitrag von Duff » 03.04.2009 12:52:06

Am besten postest du mal das Skript.
Wenn es zu lang sein sollte, kannst du es nach http://nopaste.debianforum.de/ verlinken.
Oh, yeah!

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 13:07:23

Ja es ist aber nicht gerade kurz. Hab jetzt mal ein Ausschnitt davon.

Code: Alles auswählen

#!/bin/bash
...

main_menu() { 
  IFS_BAK=$IFS
  IFS=$'\n' # wegen Filenamen mit Blanks
  ARRAY=( $(ls $DIR_PROJECTS) )
  N=0
  MENUITEMS=''
  for ITEM in ${ARRAY[@]}
  do
    if [ $ITEM != "####" ] ; then
      MENUITEMS="$MENUITEMS $N ${ITEM// /_}" # subst. Blanks with "_"
      let N+=1
    fi
  done
  IFS=$IFS_BAK
  dialog --backtitle "#### ####" \
         --title "####t" \
         --cancel-label "Quit" \
         --menu "####" 14 60 12 \
                $MENUITEMS 2> $FILE_TEMP
echo $? # hab das echo hier eingefügt. hier muss es ein problemm geben
exit
if [ $? -eq 0 ]; then
    ITEM=`cat $FILE_TEMP`
    NAME_PROJECT=${ARRAY[$(cat $FILE_TEMP)]}
    dialog --cancel-label "Cancel" \
           --menu "Project: $NAME_PROJECT" 14 60 7 \
                  #### "text" \
                  #### "text \
                  #### "text" \
		  #### "text" \
		  #### "text" 2> $FILE_TEMP 
    ITEM=`cat $FILE_TEMP`
    case $ITEM in
      ####) funktion1;;
      ####) funktion2;;
      ####) funktion3;;
      ####) funktion4;;  
      ####) funktion5;;
   esac
  else
    $RM $FILE_TEMP; exit;
  fi
}

...

while true ; do 
  main_menu
done

Selbst so geht das Script nicht mehr, wobei es eig gehen MUSS. Es ist davor auch gegegangen. hab alle Änderungen wieder rückgäng gemacht. (hatte anstatt den festen größen für die Fenster Variablen eingesetzt die die aktuelle Fenstergröße auslesen und entsprechend die Dialoggröße anpassen) Ist aber wieder draußen.

Besser so?

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: Rückgabewert Script

Beitrag von diggerchen » 03.04.2009 13:39:31

cphowdy hat geschrieben:

Code: Alles auswählen

(...)
  dialog --backtitle "#### ####" \
         --title "####t" \
         --cancel-label "Quit" \
         --menu "####" 14 60 12 \
                $MENUITEMS 2> $FILE_TEMP
echo $? # hab das echo hier eingefügt. hier muss es ein problemm geben
(...)
Versuch an Stelle der 12 mal was kleineres, eine 7 vielleicht. Ich denke, das Menü mit Höhe 12 passt nicht in das Fenster mit Höhe 14. Daher der Exit-Code 255 :arrow: interner Fehler oder Benutzer hat ESC gedrückt.

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 13:51:23

Ich glaub ich muss durchdrehen...
Wenn die Höhre und Breite bislang nicht wirklich gepasst hat, hat er das immer total verzogen angezeigt. Das er das gar nicht anzeigt war neu.
Hmm dann muss ich aufpassen mit den dynamischen Fenstern. Wollte eben anhand der Fenstergröße der aktuellen Sitzung (putty) die Fenstergröße von dialog anpassen, als ich dann wieder händisch Werte eingetragen hab, hat das wohl nicht mehr gepasst!!

DANKE EUCH!

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 14:32:25

Gibts eigentlich irgendwo ne Übersicht über die Fehlercodes?
Und noch ne Frage: Wenn ich auf der Console echo ${LINES} mache , zeigt er mir die Anzahl der Zeilen an, wenn ich das im Script mache nicht. - Warum?

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: Rückgabewert Script

Beitrag von diggerchen » 03.04.2009 15:12:08

cphowdy hat geschrieben:Gibts eigentlich irgendwo ne Übersicht über die Fehlercodes?
Auszug aus der man-page von dialog ( :arrow: man dialog):

Code: Alles auswählen

DIAGNOSTICS
       Exit status is subject to being overridden by environment variables.  Normally they are:

       0    if dialog is exited by pressing the Yes or OK button.

       1    if the No or Cancel button is pressed.

       2    if the Help button is pressed.

       3    if the Extra button is pressed.

       -1   if errors occur inside dialog or dialog is exited by pressing the ESC key.
cphowdy hat geschrieben:Und noch ne Frage: Wenn ich auf der Console echo ${LINES} mache , zeigt er mir die Anzahl der Zeilen an, wenn ich das im Script mache nicht. - Warum?
Warum die Variable im Script nicht gefüllt wird, kann ich Dir leider nicht sagen. Alternativ könnte aber statt

Code: Alles auswählen

${LINES}
das funktionieren:

Code: Alles auswählen

$(tput lines)

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 15:21:01

Großes Lob , danke funktioniert. Was ich vll davor noch hätte erwähnen sollen ist, dass ich das ganze auch noch für ${COLUMNS} brauche ... sry
Dachte es geht dann auch wie mit lines aber ist nicht so...

Code: Alles auswählen

$(tput columns) 
liefert keine ausgabe

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: Rückgabewert Script

Beitrag von cphowdy » 03.04.2009 15:24:23

ok es ist ist $(tput cols) .... ok ein bisschen eigeninitiative ist nie verkehrt....

siehe "man tput"...

Antworten