• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Variablen für ausführbare Dateien

xTraMen

Newbie
Hallo Leute,

ich habe mir eine Datei mit einer Befehlskette erstellt.
Diese Datei rufe ich in der KOnsole mit :

./sicherung

auf.

Gibt es nun eine Möglichkeit diese Datei mit Variablen so zu erstellen dass ich diese mit bestimmten Befehlen ausführen kann ?!.

Ich meine so wie z.b.

/etc/init.d/apache2 start

Also start ist in diesem Fall der Befehl.


Hintergrund ist dass ich eine Datei mit vielen Befehlen erstellen will damit ich bestimmte dinge nicht immer erst langwierig in die KOsnole eingeben möchte.

Meine Datei sieht z.b. so aus:



Code:
tar cfv /root/backup/mysql.tar /var/lib/mysql/
tar cfv /root/backup/htdocs.tar /srv/www/htdocs/
scp /root/backup/htdocs.tar  root@xxxxxxxxxx:/root/backup_s4you/htdocs.tar
scp /root/backup/mysql.tar  root@xxxxxxxxxxxx:/root/backup_s4you/mysql.tar


Ich würde ganz gerne per Befehl hinter dem Dateinamen das PAcken und das Übertragen steuern können.
Sodass es nicht einfach hintereinander ausgeführt wird.

Geht das ?!
Könntet Ihr mir da ein wenig behilflich sein ?!.

Gruss und Danke.
 

taki

Advanced Hacker
Du möchtest ein Script mit Argumenten aufrufen können.

Die Argumente stehen in Bash-Scripten in der Spezialvariable $*.

Diese kann man auswerten. Mit...

Code:
#!/bin/bash
# Ein recht nutzloses Script, was nur als Beispiel dienen soll

for Argument in $*
do
   case $Argument
     hallo)
           echo "Hallo $USER";;
     tschuess)
           echo "Tschuess auch, und danke für den ><||||:> ";;
     *)
           echo "Was willst Du?";;
   esac
done
exit 0

...abgespeichert als test.sh kannst Du dann z.B. folgendes machen:

Code:
bash-2.03$ test.sh hallo soso tschuess   
Hallo                                    
Was willst Du?                           
Tschuess auch, und danke für den ><||||:>
bash-2.03$

...oder so:

Code:
bash-2.03$ test.sh trallalla tschuess   
Was willst Du?                           
Tschuess auch, und danke für den ><||||:>
bash-2.03$

...oder so:

Code:
bash-2.03$ test.sh hallo trallalla   
Tschuess auch, und danke für den ><||||:>
Was willst Du?                           
bash-2.03$
 
OP
X

xTraMen

Newbie
Danke Dir für die Hilfe, damit kann ich sicher was anfangen.

Allerdings bekomme ich mit Deinem Script folende Fehlermelsung:

./test.sh: line 7: syntax error near unexpected token `hallo'
./test.sh: line 7: ` hallo)'


Gruss
 
OP
X

xTraMen

Newbie
OK danke habs nun kapiert.

Jetzt noch eine Frage.

Kann ich in der Datei auch das Passwort festlegen das ich zum einloggen per scp auf dem entfernten Rechner benötige.

Damit ich das nicht jedesmal neu eingeben muss ?!.

Gruss
 

TeXpert

Guru
ungut :) Passwörter niemals speichern, schau Dir lieber mal das public-key-Verfahren an, dann erzeugst Du einen ssh-key und legst den öffentlichen Teil auf der anderen Maschine ab (erstellen ohne Passphrase) jetzt kannst Du Dich ohne Passwort auf der anderen Maschine einloggen.

ok, Du könntest auch das Passwort speichern, musst dann aber mit expect arbeiten.
 
Oben