Seite 1 von 1

[solved] Shellscript ncftp

Verfasst: 9. Apr 2004, 09:29
von tux.ICBlood
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: Alles auswählen

#!/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.

Verfasst: 9. Apr 2004, 10:55
von peedee
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

Verfasst: 9. Apr 2004, 11:21
von tux.ICBlood
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.

Verfasst: 9. Apr 2004, 11:45
von peedee
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

Verfasst: 9. Apr 2004, 12:40
von tux.ICBlood
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: Alles auswählen

echo Hier ist ein Tabulator \t und weiter
Da bekomme ich nur die Ausgabe :
Hier ist ein Tabulator t und weiter.

Verfasst: 9. Apr 2004, 12:56
von peedee
echo -e "Hallo \t Tux"

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

Peter