Menü im Bashscript

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Chris, 12.06.2006.

  1. Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Hi,

    bin was die Shellprogramierung an geht ein noob, naja eine leere Datei mit einem Befehl pro Zeile bekomme ich hin.

    Hab so auch ein kleines Backupscript für ein paar spezifischen files geschrieben.

    Code:
    #!/bin/bash
    
    NAME=$(uname -n)_$(date '+%Y%m%d%H')_config.tar.gz
    echo see if we already have a $NAME
    if [ -e /var/files/$ZNAME ];
    then
    	echo "File exists I will remove it first .. Please wait"
    	sleep 5
     	rm /var/files/$NAME 2> /dev/null
    	echo saving in /var/files/$NAME
    else
    	echo saving in /var/files/$NAME
    fi
    tar Pczf /var/files/$NAME \
    /etc/network/interfaces \
    /etc/*.cfg \
    /etc/*.config \
    /etc/*.log 
    
    echo "Sicherung wurde durchgeführt"
    
    exit 0
    Jetzt möchte ich gern ein kleines Menü darum gestallten,
    so in etwa "Press A for Network config, Press B for Logfiles" usw.

    Für die ksh hab ich sowas gefunden:

    Code:
    \t A -- \t Save configurator files
    \t B -- \t Save all configuration files
    \t C -- \t Save all in the * directory
    \t D -- \t Save all in the /etc directory
    \t E -- \t Run console
    \t Q -- \t QUIT (Leave this menu program)
    \t Please type a letter (from the above choices)
    \t then press the RETURN key \c"
    aber für Bash klappt dat nicht.
    Wer kann mir dabei helfen oder mit einen Link geben wo ich so etwas nach lesen kann?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Schau Dir mal dialog an.

    Gruss, Xanti
     
  4. #3 root1992, 12.06.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    @ Xanti immer musst du schneller sein.
    Ich empfehle dir den cdialog für nichtgrafisch und den Xdialog für grafisch.
    --------------------------------------------------------
    #! /bin/sh
    dialog --menu "Bitte wählen" 0 0 0 \
    "1" "Sichern" \
    "2" "Beenden" 2> müll

    wahl=$(cat müll)
    if ...
    elif ...
    elif ...
    ...
    fi
    ...
    ----------------------------------------------

    Ich hoffe das stimmt so.
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Warum den Umweg über müll? wahl=$(dialog ...) sollte eigentlich auch gehen.

    Gruss, Xanti
     
  6. #5 root1992, 12.06.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Ich bin umständlich :)
    Aber stimmt schon was du sagst.
     
  7. #6 slasher, 12.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    ganz einfach: weil wahl=$(dialog...) nicht funktioniert.

    nein, _du_ hattest Recht.
     
  8. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hast recht, funktioniert wirklich nicht. Dann muss man wohl doch den Umweg über die Datei gehen.
     
  9. #8 root1992, 12.06.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Ah auch gut.
    Aber im Moment schreibe ich keine Shs, bin aufm (C++ && ncurses.h) Trip :)
    Und ich mache so etwas ähnliches wie den dialog, bloß das inputmenu, will ich mit ncurses machen, mit configdatei, ...
     
  10. Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Welches Paket beinhaltet "dialog" (whiptail) ?
     
  11. #10 phrenicus, 13.06.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    Hallo,

    dialog ist ein eigenes Paket, so weit ich weiß aktuell in der Version 1.0.


    Viele Grüße
     
  12. #11 Chris, 13.06.2006
    Zuletzt bearbeitet: 13.06.2006
    Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Das ist nicht gut, gibt es noch andere Möglichkeiten als mit dialog, kennt jmd das Paket whiptail (0.51.6-20 Displays user-friendly dialog boxes from shell scripts)?
    Welche befehle gibt es dafür?

    Ok statt den Befehl "dialog" ist er "whiptail", ist aber eher wie xdialog,
    hat auch ähnliche Optionen.
     
  13. #12 phrenicus, 13.06.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    Also,

    Die Syntax dürfte die gleiche sein. whiptail verweist (jedenfalls bei mir) auf dialog(1):

    Wenn Du newt lieber magst als ncurses\dots
     
  14. #13 slasher, 13.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    du kannst bei Scripts, die "dialog" benutzen einfach aus "dialog" "xdialog" machen, sofern X als Solches vorhanden und benutzbar ist.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Chris

    Chris Eroberer

    Dabei seit:
    23.04.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    Hamburg
    Ok so weit bin ich gekommen:
    Code:
    #!/bin/sh
    
    whiptail --title "Save_Config" \
            --menu "Hi, this is a menu box. You can use this to\n\
    save the configuration\n\
    Choose the one of them:" 24 51 6\
            "Save"  "Saving the configuration" \
            "Beende"  "Beende das Menue" 2> /tmp/menu.tmp.$$
    
    retval=$?
    choice=`cat /tmp/menu.tmp.$$`
    rm -f /tmp/menu.tmp.$$
    
    Vielleicht kann mir noch jmd einen Anstoss geben,
    wie ich jetzt die Auswahlmöglichkeiten durch führen lasse, mit einer Funktion?
     
  17. #15 StyleWarZ, 13.06.2006
    Zuletzt bearbeitet: 13.06.2006
    StyleWarZ

    StyleWarZ Profi Daten Verschieber

    Dabei seit:
    05.03.2004
    Beiträge:
    1.929
    Zustimmungen:
    0
    Code:
    #!/bin/sh
    
    # Funktion
    function savequestion()
    {
       read $saveend
       if [ '$saveend' = 'save'] ; then
          choice=`cat /tmp/menu.tmp.$$`
       else
          rm -f /tmp/menu.tmp.$$
       fi
    }
    
    
    whiptail --title "Save_Config" \
            --menu "Hi, this is a menu box. You can use this to\n\
    save the configuration\n\
    Choose the one of them:" 24 51 6\
            "Save"  "Saving the configuration" \
            "Beende"  "Beende das Menue"             #2> /tmp/menu.tmp.$$
    
    savequestion
    
    Wie du ja weisst muss die Funktion über dem Aufruf sein damit sie schon "eingelesen" ist. Wurde nicht getestet und kann auch Tippfehler haben!

    .::Link::.
    Brauch ich sehr oft um Syntax nachzuschlagen
    http://linuxseiten.kg-it.de/index.php
     
Thema: Menü im Bashscript
Besucher kamen mit folgenden Suchen
  1. bash whiptail Anführungszeichen

Die Seite wird geladen...

Menü im Bashscript - Ähnliche Themen

  1. Kontextmenü mit einem Skript verbinden

    Kontextmenü mit einem Skript verbinden: Abend, wenn ich z. B. eine simple Umwandlung eines Bildformates in ein anderes über das KDE-Kontextmenü (Servicemenü nennt es sich im KDE oder...
  2. Grub Boot Menü - Windows 10 hinzufügen

    Grub Boot Menü - Windows 10 hinzufügen: Hallo liebe Linux Gemeinde :) Ich, Linux Anfänger, habe folgendes Problem und wäre für Ratschläge und Hilfestellungen sehr dankbar!: Neuer PC,...
  3. MenuetOS erreicht Version 1.0

    MenuetOS erreicht Version 1.0: Fünfzehn Jahre nach dem Beginn der Entwicklung hat das extrem kompakte Betriebssystem MenuetOS die Version 1.0 erreicht. MenuetOS ist komplett in...
  4. Booten mit grub2 bis zum Grub2-Menü dauert ewig

    Booten mit grub2 bis zum Grub2-Menü dauert ewig: Hallo Auf einem i686 mit grub2 auf sda (es existiert noch sdb) mit multiboot, dauert der Bootvorgang bis zum Grubmenü eine Ewigkeit, gefühlt...
  5. ubuntu zeigt keine Menüs

    ubuntu zeigt keine Menüs: Hallo in alle Welt, zuerst allen ein schönes neues Jahr. Ich habe heute UBUNTU zusätzlich zu meinem xp installiert. Nach dem 1. Start wurden...