Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhalt einer Datei als Parameter verwenden??
SniperRifle
18.03.02, 18:53
Hi Leute!;)
Ich suche vergebens nach einer Möglichkeit, wie ich den Inhalt einer Datei als Parameter o. ä. verwenden kann.
Z.B.: In der Datei "param" steht eine einzige Zeile (eigentlich nur 2 Zeichen):
-l
Jetzt will ich dass der Inhalt dieser Datei als Parameter für ls verwendet wird, also dass dann "ls -l" ausgeführt wird.
Wie kann ich das machen???
Oder ein ähnliches Problem: Wie kann ich in einem Shellskript den Inhalt einer Datei auslesen und verwerten???
Ich freue mich über jede Antwort!:)
mfg Chris
ls $(cat param)
mfg
Tengri
SniperRifle
18.03.02, 19:35
:) Danke für die schnelle Antwort! Genau das was ich brauchte!!! :)
Jetzt kommt gleich die nächste Frage:
Wie kann ich es machen, dass ich nur einen Teil dessen, was in der Datei steht als Parameter verwende?
Also, wenn z.B. "-a -l -n" in der Datei steht, dass dann NUR "-l" als Parameter für ls verwendet wird?
mfg Chris
ls $(cat param | cut -f2 -d\ )
mfg
Tengri
SniperRifle
18.03.02, 21:16
:)
Nochmals Danke für die Antwort!
Aber ich setz den Schwierigkeitsgrad noch höher!;) Er soll jetzt aus der Datei mit dem Inhalt "-a -l -n" nur den Parameter "-l" verwenden, weiß aber nicht, an welcher stelle er steht, d.h. die Datei könnte auch so aussehen: "-l -n -a"
Wie geht das?
mfg Chris :)
Hi,
nur ne Verständnisfrage: Wo ist da die Logik ?
Würdest Du nur den 2ten, 3ten, ... Paramter aus der Datei haben wollen, ok, aber wenn Du schon von vorne herein weisst, dass Du den Parameter -l suchst, kannst Du ihn auch gleich so in das Script packen, oder nicht ?
Gruß micha
Jetzt versteh ich dich nit mehr so ganz :eek:
Du willst also aus der Datei mit "-l -n -a" nur "-l" heraushohlen egal wo es steht...
Dir is aber schon klar, dass der ganze Spass total sinnlos is wennst eh weisst du willst "-l"?
Aber bitteschön:
for foo in $(cat param)
do
if [ "$foo" = "-l" ]
then
ls "$foo"
fi
done
..oder für die Spezialisten bisserl einfacher:
ls -l
mfg
Tengri
Naja, wenn -l nicht in einem der Parameter in der Datei ist, wird nur ls aufgerufen, wenn es in der Datei ist, wird es mit ls -l aufgerufen. Keine Ahnung, wo sowas Sinn macht, unlogisch ist es aber nicht.
ls $(grep -- -l param)
Mit ls $(grep -- -l param) nimmt er aber ALLE Parameter aus der Datei falls "-l" dabei is... und nicht nur -l
mfg
Tengri
SniperRifle
19.03.02, 11:07
Hmm, ich war gestern wohl ein bisschen verwirrt :) Verzeiht! :)
Ich will, dass er eine Adresse, die in einer Datei drinsteht, in bestimmte Teile aufsplittet.
Z.B: http://www.irgendwas.com/dir1/dir2/dir3/file.html
Jetzt soll er "www.irgendwas.com" "/dir1/dir2/dir3/" und "file.html" da rausholen, und zwar so, dass ich sie getrennt voneinander verwenden kann.
mfg Chris
PS: Fragt bitte nicht, warum ich so komische Fragen gestellt habe!;)
host=$(cat param | cut -f3 -d/ )
file=$(basename $(cat param))
middle="/$(dirname $(cat param) | cut -f4- -d/ )/"
Hmm, also langsam werd ich aber schon neugierig was du eigentlich vorhast... :rolleyes:
mfg
Tengri
SniperRifle
19.03.02, 13:04
Hi!
Und wie kann ich eine String-Variable bearbeiten?
z.B.: link="hallo_welt" --> link="hallo"
denn mit cut geht das ja nicht:
link=$(cut -f1 -d_ $link)
mfg Chris
man cut Kollege ;)
link=$(echo $link | cut -f1 -d_ )
mfg
Tengri
Jups, grep -- -l param geht natuerlich nicht ... eigentlich schade, die einfachheit hatte mich gefreut. ;)
SniperRifle
19.03.02, 22:12
Hmm, also langsam werd ich aber schon neugierig was du eigentlich vorhast... :rolleyes:
Ich wollt mir eigentlich nur ein Script basteln, welches mir automatisch Dateien von einem FTP lädt. ;)
Jetzt hab ich doch schon wieder ne Frage :D:D :
Ich habe folgendes Script:
(
echo open $remotehost
echo user $user $pass
echo cd $remotedir
echo type binary
echo get $remotefilename $updir/$remotefilename
echo quit
) | ftp -n -i
rm -f $dlscript
Dieses Script wird von einem anderen Script erzeugt und dann ausgeführt. Am Ende löscht sich dieses Script selbst.
Aber wie kann dieses oben aufgeführte Script erkennen, dass beim FTP Fehler aufgetreten sind (z.B. Transfer abgebrochen; kein weiteres Einloggen möglich, o.ä.) ? Es soll sich dann nicht löschen, sondern nach einer gewissen Zeit wieder ausgeführen, bis die Datei vom FTP komplett übertragen wurde.
Da hast du bestimmt noch was auf Lager, oder?;)
mfg Chris :)
SniperRifle
20.03.02, 18:35
Hast du wirklich keine Lösung??:(
mfg Chris
Sorry, hab den Thread nit weiter verfolgt.. :o
Nein Lösung hab ich dafür nit.. zumindest nit auf die Schnelle... aber was spricht dagegen für den ftp teil das gute alte wget zu bemühen?
Das kümmert sich besser um alle möglichen Übertragungsfehler als man das mit Shellscripts jemals hinbekommen könnte...
mfg
Tengri
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.