Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bash Skript erneute Ausgae vom case Inhalt

Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO

OIOOIOOIOIIOOOIIOIIOIOOO (Level 1) - Jetzt verbinden

13.07.2019 um 12:32 Uhr, 236 Aufrufe, 2 Kommentare

Guten Tag,

gib es eine Möglichkeit, nee einen Moment, anders.

Wie kann ich die Ausgabe vom case wiederholen?

Mit echo kam ich bis jetzt nicht weiter.

Also meine Absicht ist es in dem nachfolgendem Menü bei eine Fehleingabe die vorhandenen Möglichkeiten noch einmal vorgeführt werden. Oder, wenn ein Prozess beendet wurde und in dem Menü nach dem "brake" die Stufe des Menüs verändert wird und der Benutzer die möglichen Optionen angezeigt bekommt.

Ich hab es mit "while" probiert, hab aber leider kein mögliche Logik dazu finden können.

01.
#!/bin/bash
02.

03.
#x=0
04.
#while [ $x = 0 ]
05.
#do
06.
#       clear
07.
#       echo "SUCHE"
08.
#       read auswahl
09.

10.
PS3="Bitte wählen : "
11.
select auswahl in A B C Ende
12.
 do
13.
   case "$auswahl" in
14.
MENUE=${      Ende)  echo "Ende" ; break ;;
15.
        "")  echo "$REPLY: Ungültige Auswahl" ;;
16.
         A)  select auswahla in A1 A2 A3 Ende
17.
             do
18.
               case "$auswahla" in
19.
                  Ende) echo "Ende A" ; x=1 ; break ;;
20.
                    "") echo "$REPLY: Ungültige Auswahl A" ;;
21.
                    A1) echo "A1 ist pazieren" ; x=1 ;;
22.
                    A2) echo "A2 ist verschwunden" ; x=1 ;;
23.
                    A3) echo "A3 ist hinter dir" ; x=1 ;;
24.
                  esac
25.
#                echo "Auswahl $auswahla"
26.
             done ;;
27.
         B)  select auswahl in B1 B2 B3 Ende
28.
             do
29.
                echo "Auswahl $auswahlb"
30.
             done ;;
31.
         C) select auswahl in C1 C2 B3 Ende
32.
             do
33.
                echo "Auswahl $auswahlc"
34.
             done ;;
35.
         Ende) echo "ENDE"; x=1 ; exit ;;
36.
         *)  echo "Ihre Auswahl war : $auswahl" ;;
37.
 }
38.
   esac
39.
done
Viele Grüße

Ich
Mitglied: NetzwerkDude
14.07.2019, aktualisiert um 21:51 Uhr
Schreibe eine function "draw_menu" und rufe diese bei bedarf auf
https://bash.cyberciti.biz/guide/Writing_your_first_shell_function
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
16.07.2019 um 10:54 Uhr
Zitat von NetzwerkDude:

Schreibe eine function "draw_menu" und rufe diese bei bedarf auf
https://bash.cyberciti.biz/guide/Writing_your_first_shell_function

Hallo NetzwerkDude

vielen Dank für Ihre Antwort.

So wie ich das erkennen konnte, handelt es sich in diesem Fall um eine andere Art von Menü. Muss sagen es ist sogar ein sehr schönes Menü. Leider ist es jedoch für meinen Einsatzzweck ehe weniger geeignet. Hab viele Einträge und die Eingaben müssen schnell und sicher erfolgen. Ich könnte jedoch diese Funktion in Untermenü Level3 unterbringen.

Mit "while" habe ich mir zwar eine Logik überlegt mit welche ich mein derzeitiges Problem beseitigen kann. Aber dann kann ich die Fehleingaben beim schreiben des Skriptes eventuell nicht rechtzeitig erkennen. Zumal der Aufbau sich extrem verkompliziert und vor allem könnte ich falsche Werte in die optische Anzeige rein bringen, was dann zur Falscheingabe führen könnte.

Gibt es echt keine Möglichkeit bei dem zuvor geschriebenem Menü meinen Vorhaben umzusetzen?

Die aus meiner Sicht komplizierte Variante schaut so aus:

01.
#!/bin/bash
02.
PS3="Bitte wählen:"
03.
KEINEEINGABE="Sie müssen eine Auswahl treffen!"
04.
FALSCHEEINGABE="Diese Option steht Ihnen nicht zur Verfügung. Ihre Auswahl war :"
05.
xZ="Zurück"
06.
xE="Beenden"
07.
x1="Auswahl A"
08.
x1A="Auswahl A1"
09.
x1B="Auswahl A2"
10.
x1C="Auswahl A3"
11.
x2="Auswahl B"
12.
x2A="Auswahl B1"
13.
x2B="Auswahl B2"
14.
x2C="Auswahl B3"
15.
x3="Auswahl C"
16.
x3A="Auswahl C1"
17.
x3B="Auswahl C2"
18.
x3C="Auswahl C3"
19.
x4="Auswahl D"
20.
x4A="Auswahl D1"
21.
x4B="Auswahl D2"
22.
x4c="Auswahl D3"
23.

24.
y1=0
25.
while [ $y1 = 0 ]
26.
do
27.
        clear
28.
        echo "WARTUNGSZENTRALE"
29.

30.
echo "
31.
        1 - $x1         3 - $x3
32.
        2 - $x2         4 - $x4
33.
                        E - $xE
34.

35.
$PS3 "
36.
read auswahl
37.

38.
   case "$auswahl" in
39.
        "E")  echo "Ende" ; break ;;
40.

41.
        "1")
42.
                y2=0
43.
                while [ $y2 = 0 ]
44.
                 do
45.
                  clear
46.
                    echo "Level 2 A"
47.
                    echo "
48.
      1 - $x1A          3 - $x1C
49.
      2 - $x1B
50.
      Z - $xZ           E - $xE
51.
         $PS3"
52.
         read auswahl
53.
             case "$auswahl" in
54.
                     1) echo "A1 ist spazieren" ; y2=1 ; sleep 1 ;;
55.
                     2) echo "A2 ist verschwunden" ; y2=1 ; sleep 1 ;;
56.
                     3) echo "A3 ist hinter dir" ; y2=1 ;sleep 1 ;;
57.
                     Z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
58.
                     z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
59.
                     E) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
60.
                     e) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
61.
                    "") echo "$KEINEEINGABE" ; sleep 1 ;;
62.
                     *) echo "$FALSCHEEINGABE $auswahl" ; sleep 1 ;;
63.
                  esac
64.
          done ;;
65.

66.
        "2")
67.
                y2=0
68.
                while [ $y2 = 0 ]
69.
                 do
70.
                  clear
71.
                    echo "Level 2 B"
72.
                    echo "
73.
      1 - $x2A          3 - $x2C
74.
      2 - $x2B
75.
      Z - $xZ           E - $xE
76.
         $PS3"
77.
         read auswahl
78.
             case "$auswahl" in
79.
                     1) echo "B1 ist spazieren" ; y2=1 ; sleep 1 ;;
80.
                     2) echo "B2 ist verschwunden" ; y2=1 ; sleep 1 ;;
81.
                     3) echo "B3 ist hinter dir" ; y2=1 ;sleep 1 ;;
82.
                     Z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
83.
                     z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
84.
                     E) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
85.
                     e) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
86.
                    "") echo "$KEINEEINGABE" ; sleep 1 ;;
87.
                     *) echo "$FALSCHEEINGABE $auswahl" ; sleep 1 ;;
88.
                  esac
89.
          done ;;
90.

91.
         "3")
92.
                y2=0
93.
                while [ $y2 = 0 ]
94.
                 do
95.
                  clear
96.
                    echo "Level 2 C"
97.
                    echo "
98.
      1 - $x3A          3 - $x3C
99.
      2 - $x3B
100.
      Z - $xZ           E - $xE
101.
         $PS3"
102.
         read auswahl
103.
             case "$auswahl" in
104.
                     1) echo "C1 ist spazieren" ; y2=1 ; sleep 1 ;;
105.
                     2) echo "C2 ist verschwunden" ; y2=1 ; sleep 1 ;;
106.
                     3) echo "C3 ist hinter dir" ; y2=1 ;sleep 1 ;;
107.
                     Z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
108.
                     z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
109.
                     E) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
110.
                     e) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
111.
                    "") echo "$KEINEEINGABE" ; sleep 1 ;;
112.
                     *) echo "$FALSCHEEINGABE $auswahl" ; sleep 1 ;;
113.
                  esac
114.
          done ;;
115.

116.

117.
         "4")
118.
                y2=0
119.
                while [ $y2 = 0 ]
120.
                 do
121.
                  clear
122.
                    echo "Level 2 D"
123.
                    echo "
124.
      1 - $x4A          3 - $x4C
125.
      2 - $x4B
126.
      Z - $xZ           E - $xE
127.
         $PS3"
128.
         read auswahl
129.
             case "$auswahl" in
130.
                     1) echo "C1 ist spazieren" ; y2=1 ; sleep 1 ;;
131.
                     2) echo "C2 ist verschwunden" ; y2=1 ; sleep 1 ;;
132.
                     3) echo "C3 ist hinter dir" ; y2=1 ;sleep 1 ;;
133.
                     Z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
134.
                     z) echo "Hauptmenü" ; y2=1 ; sleep 1 ; break ;;
135.
                     E) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
136.
                     e) echo "Beenden" ; y2=1 ; sleep 1 ; exit ;;
137.
                    "") echo "$KEINEEINGABE" ; sleep 1 ;;
138.
                     *) echo "$FALSCHEEINGABE $auswahl" ; sleep 1 ;;
139.
                  esac
140.
          done ;;
141.

142.
         *)  echo "$FALSCHEEINGABE $auswahl" ; sleep 5 ;;
143.
   esac
144.
done


Viele Grüße

Ich
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash Skript Backup
gelöst Frage von DavidScBatch & Shell8 Kommentare

Guten Morgen zusammen, ich habe leider keine Erfahrung im skripten, daher benötige ich eure Hilfe. Systemumfeld und Problem: SLES ...

Debian
Bash-Skript: Datei einlesen
gelöst Frage von Fenris14Debian3 Kommentare

Moin, also entweder bin ich zu dumm oder ich denke zu kompliziert. Ich versuche ein Skript zu schreiben das ...

Batch & Shell

BASH-Skript in Linux - Mailversand funktioniert nicht

gelöst Frage von DanielG1974Batch & Shell12 Kommentare

Hallo. Gleich vorweg: Ich habe keine Ahnung von BASH- oder BATCH-Skripten. Ich such mir hier und da was zusammen ...

Batch & Shell

Bash-Skript mit rsync (Anfänger bittet um Hilfe)

gelöst Frage von PedantBatch & Shell10 Kommentare

Hallo, unter Windows fühle ich mich zuhause, doch was Linux angeht bin ich recht unerfahren. Jetzt möchte ich eine ...

Neue Wissensbeiträge
Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 19 StundenWindows Update1 Kommentar

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 1 TagBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 3 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 steht in Englisch bereit mit Unterstützung für Windows 10 1903 (May Update)

Information von VGem-e vor 3 TagenSicherheits-Tools1 Kommentar

Moin Kollegen, Dann kommt wohl demnächst auch die deutschsprachige/europäische Version zur Auslieferung. Gruß VGem-e

Heiß diskutierte Inhalte
Windows Server
Windows Server 2016 einrichten
Frage von borjiaWindows Server34 Kommentare

Ich würde gerne einen Server einrichten, erstmal nur mit DNS und AD. Habe mich die letzten Wochen durch diverse ...

Google Android
Anbieter für Diensthandys
Frage von Pat.batGoogle Android25 Kommentare

Hallo zusammen, ich bin seit einiger Zeit zuständig für die Diensthandys bei uns in der Behörde. Eine Management Software ...

Netzwerkgrundlagen
Neue Serverumgebung von 0 aufbauen
Frage von JacareNetzwerkgrundlagen19 Kommentare

Hallo zusammen, ich bin noch nicht lange hier und weiß nicht, ob meine Frage daher etwas ungewöhnlich ist. Ich ...

Windows Server
Verbindunsproblem zwischen Klient und Wsus-Server
Frage von flashgordon78Windows Server16 Kommentare

Liebe Forum Besucher! Ich habe ein Wsus_Server (Win Server 2016) erstellt und die Update sind herunterladen worden. Aber ich ...