Hilfe bei diesem einfachen Bash-Skript?
Ich will dass das Programm wenn ich auf "gruppen anzeigen" klicke mir alle Gruppen im System im Dialig angezeigt werden und das Programm beendet wird wenn ich auf "beenden" klicke. Aber irgendwie kommt entweder ein Fehler dass bei mir das "fi" fehlt was nicht stimmt. Oder es werden die Gruppen auch angezeigt wenn ich auf beenden klicke. Ich habe versucht die If-Anweisungen zu löschen und dann nach wahl=$(cat $inhalt) ein echo zu machen. Und bei mir wird immer "1" ausgegeben egal auf was ich drücke. Wobei ich eig. Wenn ich auf "beenden" klicke dann sollte "Ende" rauskommen" oder ?
#!/bin/bash
#
inhalt=$(mktemp)
auswahl(){
dialog --backtitle "Elemente anzeigen" --title "Elemente zeigen" \
--cancel-label "Abbruch" \
--checklist "Bitte treffen Sie Ihre Auswahl!" 10 50 3 \
"1." "Gruppen anzeigen im Dialig" on \
"Ende." "Programm beenden" off \
2>$inhalt
fehler=$?
clear
if [ $fehler != 0 ] ;
then
echo "Da ist ein Fehler aufgetreten"
echo "Fehler-Nr.: $fehler"
rm $inhalt
exit 1
fi
wahl=$(cat $inhalt)
if [ "$wahl" == "1." ]; then
dialog --backtitle "Ausgabe von Gruppen" \
--msgbox "$(groups)" 20 60 \
fi
rm $inhalt
}
while :
do
auswahl
done
1 Antwort
--msgbox "$(groups)" 20 60 \
Das letzte "neue Zeile folgt" ("\") ist falsch. Das muss auf alle Fälle weg
Ich werde das dumpfe Gefühl nicht los, dass --checklist nicht das ist, was Du willst, da Du ja eine bestimmte Funktion auswählen und durchführen willst.
beide Optionen den Wert "1"
Was meinst Du damit? Je nach Auswahl enthält $input danach "", "1.", "Ende" oder "1. Ende."
Eine --radioList ergibt für mich mehr Sinn. Dann bekommt man entweder "1." oder "Ende.".
naja je nach dem was ich wähle kommt bei wahl=$(cat $inhalt) entweder den Wert "1." oder den Wert "Ende" oder nicht ? weil bei mir kommt immer "1."
Mit der Korrektur von evtldocha tut doch alles (ich habe Dein Script kopiert und ausgeführt). Probier mal auf der Kommandozeile
dialog --checklist "Auswahl" 10 50 3 "1." "Gruppen" on "Ende." "beenden" off 2>sel ; echo checked=$(cat sel)
Bei mir erscheint je nach Auswahl eine der vier oben genannten Strings auf der Konsole. Was kommt bei Dir?
nope. Bei mir hängt das ganze Programm irgendwie
Danke habe ich übersehen. Die Frage ist jetzt aber wieso beide Optionen den Wert "1" haben ?