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

[solved] Shellscript ncftp

tux.ICBlood

Member
Ich habe ein bisschen mit shellscipten angefangen. Und habe gehört das ich in ein shellscript alle befehle schreiben kann die ich auch in die Konsole tippen kann. Gut, und warum funzt das nicht:
Code:
#!/bin/bash
echo Verbinde mit Server
ncftp -u anonymous -p email@web.de ftp.gwdg.de
cd pub
cd linux
cd suse
ls
Ich erhalte nur die Ausgabe
Verbinde mit Server - und dann die ncftp ausgabe
aber das Script führt dann nicht weiter aus, da ist nur das Programm
ncftp>
Wenn ich dann exit tippe führt das den Rest aus (findet pub und so aber nicht, hab das ja in meinem home auch nicht)
Woran liegt das das ich in nem Shellscript nicht ncftp steuern kann? Gibt es noch ne andere Lösung.
 
A

Anonymous

Gast
Hi,

das Problem ist, das nach dem starten des ftp-Programms Deine script-Datei nicht mehr für die Eingabe verantwortlich ist. Du gibst halt nicht alles direkt in der bash ein, sondern in das FTP-Programm.

Du kannst allerdings die Eingabe umleiten.
So sollte es gehen..

Datei sc.sh:

#!/bin/bash
echo Verbinde mit Server
ftp ftp://ftp.gwdg.de < ./input.txt

Datei input.txt:

cd pub
cd linux
cd suse
ls
exit

Die Datei in das gleiche Verzeichnis legen und dann die Skriptdatei ausführbar machen und mit ./sc.sh starten.

Ich hoffe, das hilf Dir.

Viele Grüße
Peter
 
OP
tux.ICBlood

tux.ICBlood

Member
Erstmal danke für die schnelle Hilfe. :idea:
Aber gibt es keine Möglichkeit das in einer Datei zu behalten? Ich find das nichz gut wenn ich für ein script 10 Dateien brauche.
 
A

Anonymous

Gast
Hi, Du kannst das folgendermaßen machen:

z.B.

sort <<ENDE
hans
peter
thomas
ENDE

dann wird die Eingabe bis zum Wort nach << (hier: ENDE) umgeleitet.

Das habe ich aus einem sehr guten Buch über Linux-Shells:

eBook - Linux-Unix-Shells, Bourne-Shell, Korn-Shell, C-Shell, bash, tcsh, 3. Auflage - GERMAN - ISBN 3-8273-1511-5.pdf

vielleicht gibt es das ja auch in aMule?

Viele Grüße
Peter
 
OP
tux.ICBlood

tux.ICBlood

Member
Ja danke - ich habe mir auch ein Shellbuch geholt (Ich finds gedrukt besser, weills dann neben dem PC liegt) da steht drin (Achtung anders Thema *g*) dass ich einen Tabulator mit \t erzeuge. Bei mir geht das allerdings nicht.
Code:
echo Hier ist ein Tabulator \t und weiter
Da bekomme ich nur die Ausgabe :
Hier ist ein Tabulator t und weiter.
 
A

Anonymous

Gast
echo -e "Hallo \t Tux"

Du mußt -e übergeben, dann benutzt bash die Sonderzeichen aus der Programmiersprache C.

Peter
 
Oben