Wie Scripte für die Bash erstellen?
Wie Scripte für die Bash erstellen?
Hallo,
ich möchte mehrere umfangreiche Befehle in einem Script zusammen fassen. Wenn ich dieses dann ausführe, möchte ich eine Auswahl angezeigt bekommen und dann z.B. die 6 für ein entspr. Befehl eingeben, der dann ausgeführt wird. Da ich in diesem Bereich Anfänger bin brauche ich ein paar Infos. Welche Sprache wird hierfür verwendet und was gibt es dabei zu beachten.
Danke
ich möchte mehrere umfangreiche Befehle in einem Script zusammen fassen. Wenn ich dieses dann ausführe, möchte ich eine Auswahl angezeigt bekommen und dann z.B. die 6 für ein entspr. Befehl eingeben, der dann ausgeführt wird. Da ich in diesem Bereich Anfänger bin brauche ich ein paar Infos. Welche Sprache wird hierfür verwendet und was gibt es dabei zu beachten.
Danke
Re: Wie Scripte für die Bash erstellen?
Hi,
das geht zwar ein wenig an deiner Frage vorbei, koennte aber trotzdem eine Loesung sein.
Definier dir doch für die einzelnen Befehle jeweils einen "alias" (in der ~/.bashrc) , wie z.B.:
alias ll="ls -la"
Wenn du jetzt in einer Konsole "ll" eingibst, wird "ls -la" ausgeführt, was aber in deinem Fall dann wohl ein laengerer Befehl waere.
das geht zwar ein wenig an deiner Frage vorbei, koennte aber trotzdem eine Loesung sein.
Definier dir doch für die einzelnen Befehle jeweils einen "alias" (in der ~/.bashrc) , wie z.B.:
alias ll="ls -la"
Wenn du jetzt in einer Konsole "ll" eingibst, wird "ls -la" ausgeführt, was aber in deinem Fall dann wohl ein laengerer Befehl waere.
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Re: Wie Scripte für die Bash erstellen?
Ein einfaches bash-Script könnte so aussehen:
Ich würde aber auch die Variante mit den Aliasen vorziehen.
Code: Alles auswählen
#!/bin/bash
CMD1="ls "
CMD2="pwd "
CMD3="whoami"
CMD4="groups"
echo
echo "Available shortcuts for commands:"
echo "1 - $CMD1 - list directory contents"
echo "2 - $CMD2 - print name of current/working directory"
echo "3 - $CMD3 - print effective userid"
echo "4 - $CMD4 - print the groups a user is in"
echo
echo "Please enter a number to call a command:"
read input
case "$input" in
1)
CMD=$CMD1;;
2)
CMD=$CMD2;;
3)
CMD=$CMD3;;
4)
CMD=$CMD4;;
*)
echo "invalid input";
exit 1;;
esac
echo
echo Command:
echo $CMD
echo
echo Output:
$CMD
Re: Wie Scripte für die Bash erstellen?
Moin Leute,
danke hikaru, das ist genau das was ich gesucht habe. Ist das Perl? Gibt es gute Howtos / Anleitungen die weitere Funktionen erklären?
Thx
danke hikaru, das ist genau das was ich gesucht habe. Ist das Perl? Gibt es gute Howtos / Anleitungen die weitere Funktionen erklären?
Thx
Re: Wie Scripte für die Bash erstellen?
Das ist ein Shell-Script für die Bash. Perl sieht anders aus.
Re: Wie Scripte für die Bash erstellen?
Hi,
ah ok. Wäre es auch mit Perl möglich, oder ist es wie auf Spatzen schießen? Was wird häufiger im professionellen Umfeld eingesetzt? (ja kommt drauf an ) Gibt es da generelle Aussagen?
thx
ah ok. Wäre es auch mit Perl möglich, oder ist es wie auf Spatzen schießen? Was wird häufiger im professionellen Umfeld eingesetzt? (ja kommt drauf an ) Gibt es da generelle Aussagen?
thx
Re: Wie Scripte für die Bash erstellen?
Wenn es "normale" Konsolenbefehle sind würde ich auf Bash zurück greifen.
Perl ist eher dazu da, um Texte/Logfiles zu parsen. Man kann dort gut reguläre Ausdrücke anwenden.
Perl ist eher dazu da, um Texte/Logfiles zu parsen. Man kann dort gut reguläre Ausdrücke anwenden.
Oh, yeah!
Re: Wie Scripte für die Bash erstellen?
Ah ok, ich habe mittlerweile auch etwas gelesen und denke das Bashscripte hierfür eher geeignet sind. Ein Problem habe ich allerdings. In dem Befehl um eine Virtuelle Maschine zu starten sind 2 Anführungszeichen. Wenn ich sie mit \" auskommentiere erhalte ich eine Fehlermeldung: "Error: Cannot open VM: ", unknown file suffix" Wenn ich den ausgegebenen Befehl kopiere und ausführe ist alles ok. Woran könnte das liegen?
Ach noch einen. Ich habe kurz versucht das Menü in einer while do done Schleife laufen zu lassen und mit einem Exit-Code zu beenden, klappte leider nicht. Hast du noch einen Tipp
thx
Ach noch einen. Ich habe kurz versucht das Menü in einer while do done Schleife laufen zu lassen und mit einem Exit-Code zu beenden, klappte leider nicht. Hast du noch einen Tipp
thx
Re: Wie Scripte für die Bash erstellen?
Hi,
Ist zwar jetzt ungetestet, sollte aber laufen.
dann mach halt:sunghost hat geschrieben:Ein Problem habe ich allerdings. In dem Befehl um eine Virtuelle Maschine zu starten sind 2 Anführungszeichen. Wenn ich sie mit \" auskommentiere erhalte ich eine Fehlermeldung: "Error: Cannot open VM: ", unknown file suffix" Wenn ich den ausgegebenen Befehl kopiere und ausführe ist alles ok.
Code: Alles auswählen
case "$input" in
1)
CMD=$(mein unheimlich langer befehl der "..." enthaelt);;
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Re: Wie Scripte für die Bash erstellen?
Generelle Aussagen würde ich da nicht machen. Shell-Scripte sind der "traditionelle" Weg und für kleine Sachen durchaus brauchbar. Wenn es aber komplexer wird, kann Shell richtig ekelig werden.sunghost hat geschrieben:ah ok. Wäre es auch mit Perl möglich, oder ist es wie auf Spatzen schießen? Was wird häufiger im professionellen Umfeld eingesetzt? (ja kommt drauf an ) Gibt es da generelle Aussagen?
Heute hat man auch überall einen Perl-Interpreter zur Hand und bei komplexen Sachverhalten ist Perl klar im Vorteil. Daher würde ich Shell immer dann bevorzugen, wenn es absehbar nur um sehr kleine Sachen geht. Ist die Komplexität größer oder nicht absehbar würde ich immer Perl bevorzugen.
Wenn man häufiger Scripts schreibt wird es irgendwann lästig zweigleisig zu fahren. Daher bin ich dazu übergegangen, alles was über einen simplen Programmaufruf hinausgeht in Perl zu schreiben.
So könnte übrigens der Code in Perl aussehen:
Code: Alles auswählen
#/usr/bin/perl -w
use strict;
my @CMD;
$CMD[1]="ls ";
$CMD[2]="pwd ";
$CMD[3]="whoami";
$CMD[4]="groups";
print "\nAvailable shortcuts for commands:\n";
print "1 - $CMD[1] - list directory contents\n";
print "2 - $CMD[2] - print name of current/working directory\n";
print "3 - $CMD[3] - print effective userid\n";
print "4 - $CMD[4] - print the groups a user is in\n\n";
print "Please enter a number to call a command:\n";
my $input=<STDIN>;
if (!defined($CMD[$input])) { print "\ninvalid input\n"; }
else {
print "\nCommand:\n";
print "$CMD[$input]\n\n";
print "Output:\n";
system($CMD[$input]);
}
Kannst du mal bitte den VM-Aufruf posten? Offenbar ist es ja kein Shell-Problem, denn das Escapen der Anführungszeichen sollte funktionieren.
Re: Wie Scripte für die Bash erstellen?
Hi,
der Befehl lautet:
vmrun -T server -h https://localhost:8333/sdk -u User -p Pass start \"[standard] Server02/Server02.vmx\" nogui"
Perl sieht ja auch gar nicht so wild aus, schaus mir mal an.
der Befehl lautet:
vmrun -T server -h https://localhost:8333/sdk -u User -p Pass start \"[standard] Server02/Server02.vmx\" nogui"
Perl sieht ja auch gar nicht so wild aus, schaus mir mal an.
Re: Wie Scripte für die Bash erstellen?
Entweder ist in deinem Aufruf ein Gänsefüßchen zu viel oder eins zu wenig. Die treten für gewöhnlich immer paarweise auf.
Re: Wie Scripte für die Bash erstellen?
Sorry war etwas nachlässig. So sieht der Befehl normalerweise in der Bahs aus:
vmrun -T server -h https://localhost:8333/sdk -u User -p Pass start "[standard] Server02/Server02.vmx" nogui
Gruß
sunny
vmrun -T server -h https://localhost:8333/sdk -u User -p Pass start "[standard] Server02/Server02.vmx" nogui
Gruß
sunny
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie Scripte für die Bash erstellen?
Hallo!
Probier es doch mal so:
Gruß, habakug
Probier es doch mal so:
Code: Alles auswählen
vmrun -T server -h 'https://localhost:8333/sdk' -u User -p 'Pass' start "[standard] Server02/Server02.vmx" nogui
Re: Wie Scripte für die Bash erstellen?
Sorry hatte und habe nicht so viel Zeit, daher nur der kurze Einwurf, dass die Anführungszeichen das Problem zu sein scheinen. Probiere es dennoch demnächst mal aus.
Gruß
Gruß
Re: Wie Scripte für die Bash erstellen?
Nabend,
sorry aber ich bin jetzt erst zum probieren gekommen. Es scheint auch so nicht zu funktionieren. Bei Command: wird nun nichts mehr angezeigt. Hast du noch eine Idee?
Danke
sunny
sorry aber ich bin jetzt erst zum probieren gekommen. Es scheint auch so nicht zu funktionieren. Bei Command: wird nun nichts mehr angezeigt. Hast du noch eine Idee?
Danke
sunny