ERLEDIGT
JA
JA
ANTWORTEN
13
13
ZUGRIFFE
741
741
EMPFEHLEN
-
Hallo,
Ich hatte mal eine Website gelesen auf der Stand wie man in Bash ein Menü macht.
Ich meine jetzt so ein menü wie z.b. der midnight commander.
Wie ist soetwas möglich?
Noch ne Frage:
Wie kann Ich es realisieren, in bash einstellungen, die der user festlegt, temporär für die laufzeit zu setzen?
Gibt es soetwas wie Sprungmarken?
Z.b.
Der user tippt "3" ein, und komt auf die einstellungsseite. Hier gibt er z.b. seinen namen an, etc.
Nach speichern kommt man wieder auf die startseite. ist soetwas möglich, wenn ja, wie?
Noch ne frage
:
Wie kann ich z.b. in ftp rausfinden, in bash, ob z.b. der ordner schreibegschütz ist, was für rechte darauf sind, wieviel dateien sich drin befinden, die aktuelle upload und downloadgeschwindigkeit, etc.. wie bekomme Ich solche dinge raus? gibt es irgendwo eine seite wo solche sachen in bash beschrieben werden?
Ok, ich dachte mir, ich sammle mal meine fragen, bevor ich wieder neue threads auf,mache
!
gruß kevin
-
Hi,
ein Menü kannst du dir basteln in dem du z.B. sowas erstellst:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
f_main_menu() { clear printf "\n Aktualisieren von Nummern\n\n" printf " Datenbank : %50s\n" "$DATENBANK" printf " Dateiname (*.csv) : %50s\n\n" "$DATEI" cat <<-EOT [1] - Datenbankname festlegen [2] - User korrigieren [3] - Dateiname festlegen [4] - Aktualisierung simulieren [5] - Protokoll anzeigen [6] - Aktualisierung starten [7] - Wiederherstellen [0] - Beenden EOT printf " Auswahl: " read AUSWAHL }
Eingaben die der Usermacht, werden in der Variable gespeichert der du sie zuweist. Also z.B.Code :1 2 3
printf "geben sie ihren namen an:" read myname printf "ihr name ist also $myname"
Das der User nach seiner eingabe wieder ins menü kommt geht auch... hänge an den Code oben einfach noch den Aufruf der Funktion (f_main_menu()) zur Ausgabe des Menüs an.
//edit der böse, böse Fehlerteufel.Geändert von imweasel (25.08.05 um 13:45 Uhr)
---
Der Uhu ist der Luchs unter den Adlern...
Dieter Nuhr
-
Hi,
Danke
!
Jetzt funktioniert alles wunderbar.
Aber du weiß vielleicht nicht wie Ich diverse Sachen in ftp per bash überprüfen lassen kann? gerade wegen schreibrechten, etc.?
gruß kevin
EDIT: ein problem habe Ich das Ich nicht verstehe:
Code :1 2 3 4 5 6 7 8
function menu() { printf "[1] Suche starten"; printf "[2] Einstellungen"; printf ""; printf "[0] Beenden"; } echo menu();
Wieso geht das nicht? Bash sagt:
line 12: syntax error near unexpected token `('
Aber wie rufe ich eine funktions sonst auf?
gruß kevinGeändert von kevkev (25.08.05 um 14:44 Uhr)
-
Hi,
zuerstmal die Frage wieso du immer am Zeilenende ein Semikolon (;) stehen hast Ich dachte du meinst die Shell und nicht PHP (o.ä.).
Du musst eine Funktion nicht mit function name deklarieren, sondern einfachschreiben. Aufrufen kannst du diese Funktion in deinem Skript mit namederfunktion.Code :1 2 3
namederfunktion() { #hier jetzt deine Abläufe }---
Der Uhu ist der Luchs unter den Adlern...
Dieter Nuhr
-
Hallo,
schau mal:
Code :1 2 3 4 5 6 7 8
menu() { printf "[1] Suche starten\n" printf "[2] Einstellungen\n" printf "\n" printf "[0] Beenden\n" } menu #aufruf von menu
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
Hi,
@imweasel:
oh, brauch man da kein ;? dachte das bräuchte man
Naja, halt alle nochmal weg machen
! Danke
!
@RedWing:
ok, danke
!
Danke euch beiden, wenns wieder Fragen gibt, komme Ich wieder
!
EDIT:
Da bin ich auch schon wieder:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
#!/bin/bash menu() { clear printf "\t[1] Suche starten\n" printf "\t[2] Einstellungen\n" printf "\n" printf "\t[3] Infos\n" printf "\t[4] Hilfe\n" printf "\n" printf "\t[0] Beenden\n" printf "\n\tAuswahl:\n" read auswahl } menu if [ $auswahl == "1" ]; then echo "Die Suche wird gestartet..."; fi if [ $auswahl == "2" ]; then clear echo "Einstellungen" printf "\n" printf "\t[1] Test1\n" printf "\t[2] Test2\n" printf "\t[3] Test3\n" printf "\n\t[4] Abbrechen\n\n" printf "\t Auswahl:\n" read auswahl_2 if [ $auswahl_2 == "4" ]; then menu fi fi
Aber hier kann Ich doch nur max. einmal auf Einstellungen gehen, da ja sonst das Script beendet wird. Wie mache Ich das aber dynamisch?
D.h. ich wähle einstellungen, klicke auf abbrechen, danach auf "suche starten" dann breche Ich wieder ab, und klick auf "Hilfe", etc.
Da bräuchte Ich doch bis zum geht nicht mehr if oder case abfragen.
Hier wäre wohl eine Sprungmarke das sinnigste, aber die gibts es doch glaube Ich nicht.
Wie löse ich das denn sonst noch?
gruß kevinGeändert von kevkev (25.08.05 um 15:23 Uhr)
-
Gleich nochn Nachtrag:
So kannst du ner Funktion auch Parameter übergeben:
Code :1 2 3 4 5 6 7 8 9
menu() { for i in $* #alle parameter/ Alternativ ohne Schleife: Verwendung von $1- $9 do printf "Argument: $i\n" done printf "\n" } menu "Ein String" 1 "Hallo" "Welt" #aufruf von menu
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
Dafür gibts doch schleifenDa bräuchte Ich doch bis zum geht nicht mehr if oder case abfragen.
:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
auswahl=1 while [ $auswahl != "0" ]; do menu if [ $auswahl == "1" ]; then echo "Die Suche wird gestartet..."; fi if [ $auswahl == "2" ]; then clear echo "Einstellungen" printf "\n" printf "\t[1] Test1\n" printf "\t[2] Test2\n" printf "\t[3] Test3\n" printf "\n\t[4] Abbrechen\n\n" printf "\t Auswahl:\n" read auswahl_2 fi if [ $auswahl == "4" ]; then menu fi done
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
25.08.05 16:00 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Es gibt sogar in Bash ein spezielles Kommando um Menüs anzuzeigen und wiederholt anzuzeigen:Wenn du die PS3 Variable änderst kannst du den Prompt bestimmen der dabei angezeigt wird. (siehe 'man bash')Code :1 2 3
select wort in Wohnen 'Essen & Trinken' Schlafen Lesen; do echo "$REPLY: $wort" done
Das mit den Zugriffsrechten von FTP wird natürlich schwieriger (was willste denn eigentlich machen?). Das hängt dann von deinem FTP Client und auch vom Server ab (ich glaub nicht, das Windows FTP Server Zugriffsrechte besitzen so wie bei Unix Dateisystemen).
So geht es z.B. mit dem Kerberos FTP Client:
Die Ausgabe hängt allerdings wie gesagt vom Server ab.Code :1 2 3 4 5 6 7 8
VERZ="/OS/Linux/Dist" USER="anonymous" PASS="xxx" ftp -i -u sunsite.mff.cuni.cz <<EOF user $USER $PASS ls $VERZ close EOF
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hi,
@RedWing:
Danke, aber wenn Ich das so mache wie du es sagst komme Ich zwar in das Einstellungs menü, aber nicht in das 1. menü "Suche starten"
!
@deepthroat:
Danke, werd Ich mir mal näher ansehen
!
Mhh, dachte das wäre einfacher, mhh, naja, egal
!
gruß kevin
-
Das funktioniert schon du löschst die Ausgabe von suche starten nur gleich wieder...:Danke, aber wenn Ich das so mache wie du es sagst komme Ich zwar in das Einstellungs menü, aber nicht in das 1. menü "Suche starten" !
Code :1 2 3
menu() { clear ...
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
Hi,
Ja aber, mhh...
Ok, ich hab das mal mit Case gemacht:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
menu() { printf "\t[1] Suche starten\n" printf "\t[2] Einstellungen\n" printf "\n" printf "\t[3] Infos\n" printf "\t[4] Hilfe\n" printf "\n" printf "\t[0] Beenden\n" printf "\n\tAuswahl:\n" read auswahl } auswahl=1 while [ $auswahl != "0" ]; do case "$auswahl" in 1) clear echo "Suche wird gestartet..." ;; 2) clear printf "### Einstellungen ###\n\n" printf "\t[1] Test1\n" printf "\t[2] Test2\n" printf "\t[3] Test3\n" printf "\n\t[4] Abbrechen\n\n" printf "\t Auswahl:\n" ;; *) menu ;; esac done
Aber auch da spinnt das alles ein wenig.
Gruß kevinGeändert von kevkev (25.08.05 um 17:09 Uhr)
-
Also ich hab das für dich jetzt mal a weng umgebastelt du musst halt probieren dann bekommst dus auch
irgendwann hin...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
menu() { printf "\t#####################\n" printf "\t### Mirror Script ###\n" printf "\t#####################\n" printf "\t[1] Suche starten\n" printf "\t[2] Einstellungen\n" printf "\n" printf "\t[3] Infos\n" printf "\t[4] Hilfe\n" printf "\n" printf "\t[0] Beenden\n" printf "\n\tAuswahl:\n" read auswahl } auswahl=1 clear while [ $auswahl != "0" ]; do menu case "$auswahl" in 1) echo "Suche wird gestartet..." sleep 2 clear;; 2) printf "### Einstellungen ###\n\n" printf "\t[1] Test1\n" printf "\t[2] Test2\n" printf "\t[3] Test3\n" printf "\n\t[4] Abbrechen\n\n" printf "\t Auswahl:\n" read auswahl2 case "$auswahl2" in 1) echo "Test1";; 2) echo "Test2";; 3) echo "Test3";; esac sleep 2 clear;; esac done
btw deepthroats Variante mit dem select is aber die elegantere deswegen solltest du dadrauf
zurückgreifen...
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
Hi,
Ich habe es hinbekommen
!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
menu() { printf "\t[1] Suche starten\n" printf "\t[2] Einstellungen\n" printf "\n" printf "\t[3] Infos\n" printf "\t[4] Hilfe\n" printf "\n" printf "\t[0] Beenden\n" printf "\n\tAuswahl:\n" read auswahl } menu while true; do case $auswahl in 1) clear printf "\tSuche wird gestartet...\n\n" printf "\t[Abbrechen]\n" read abbrechen case $abbrechen in *) menu;; esac ;; 2) clear printf "\t### Einstellungen ###\n\n" printf "\t[1] Zurück\n" printf "\t[2] Infos\n\n" read auswahl_2 case $auswahl_2 in 1) menu;; 2) clear printf "\t### Infos ###\n\n" printf "\t[1] Zurück\n" read auswahl_3 case $auswahl_3 in 1) auswahl_2;; esac esac esac done
So gehts wunderbar
Danke
.
gruß kevin
Ähnliche Themen
-
Ein paar Fragen zu MFC
Von aspMofL im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 16.10.08, 08:01 -
Paar Fragen
Von Blatt im Forum Visual Basic 6.0Antworten: 12Letzter Beitrag: 19.06.06, 18:48 -
Ein paar Fragen
Von Hankys im Forum 3D Studio MaxAntworten: 3Letzter Beitrag: 21.04.03, 14:55 -
Ein paar Fragen zu C++
Von dfp im Forum C/C++Antworten: 3Letzter Beitrag: 14.01.02, 10:44 -
Ein paar Fragen [HELP] ...
Von SerpenteS-X- im Forum 3D Studio MaxAntworten: 15Letzter Beitrag: 08.01.02, 15:11





Zitieren
Login





