Archiv verlassen und diese Seite im Standarddesign anzeigen : bashscript und parameterübergabe
meinereinerseiner
24-01-2007, 10:19
Hi,
ich habe da mal wieder eine Kleinigkeit.
ein script soll einen Befehl via nice ausführen.
Beispiel test.sh:
#!/bin/bash
nice -n 19 $1
ein Aufruf bringt aber das hier:
devil:/tmp # ./test.sh "ls -al > liste.out"
ls: >: No such file or directory
ls: liste.out: No such file or directory
nun hab ich schon alles mögliche versucht mit maskieren etc.
komme aber nicht weiter.
hat da jemand die zündende idee?
der tom
undefined
24-01-2007, 11:52
Tja man sollt doch schon vorher Prüfen was ankommt ;)
if [ !-d "$1" ] ; then
echo "Usage `basename $0` <dir>"
exit 1
fi
PS: ls erwartet einen Parameter <verzeichnis>
meinereinerseiner
24-01-2007, 12:49
Tja man sollt doch schon vorher Prüfen was ankommt ;)
PS: ls erwartet einen Parameter <verzeichnis>
hi,
naja, auf der commandline aber nicht, dann macht er das ja und wenn ich
das "ls -al" gegen ein "ps -ef" ersetze funnzt es auch nicht und das ps will nun garantiert kein directory als parameter, oder?
ich denke mal das problem ist die umleitung in das file, das bringt ihn durcheinander.
der tom
Hallo Tom,
hast Du schon mal "$1" statt $1 versucht ?
Gruss zst
meinereinerseiner
25-01-2007, 15:39
Hallo Tom,
hast Du schon mal "$1" statt $1 versucht ?
Gruss zst
hi,
ja habe ich, dann kommt ein:
./test.sh "ls -al > liste.out"
nice: ls -al > liste.out: No such file or directory
ich werd noch wahnsinnig :)
der tom
michael.sprick
25-01-2007, 16:05
Blöde Frage: Existiert /bin/bash wirklich?
which bash
Es gibt ja auch Systeme, auf denen keine Bash läuft ;)
Nächste blöde Frage: Kann es sein, dass sich dort evtl. ein Windows Zeilenumbruch eingeschlichen hat?
meinereinerseiner
25-01-2007, 20:49
Blöde Frage: Existiert /bin/bash wirklich?
which bash
Es gibt ja auch Systeme, auf denen keine Bash läuft ;)
Nächste blöde Frage: Kann es sein, dass sich dort evtl. ein Windows Zeilenumbruch eingeschlichen hat?
zum bash thema:
devil:~ # which bash
/bin/bash
und was den zeilenumbruch angeht, selbst wenn ichs vollkommen neu
mit dem vi schreibe, hab ich den gleichen effekt.
problem ist einfach das ">" zeichen, das bringt die bash irgendwie aus dem tritt.
der tom
Moin moin,
ja habe ich, dann kommt ein:
./test.sh "ls -al > liste.out"
nice: ls -al > liste.out: No such file or directory
und wenn Du es so versuchst:
./test.sh "ls -al" > liste.out
?
ich werd noch wahnsinnig :)
immer mit der Ruhe :D
MfG,
meinereinerseiner
26-01-2007, 06:34
Moin moin,
und wenn Du es so versuchst:
./test.sh "ls -al" > liste.out
?
moin,
js das geht, das wusste ich aber auch schon vorher - ist aber nicht so gewollt.
der tom
michael.sprick
26-01-2007, 11:26
folgendes funktioniert bei mir:
#!/bin/bash
echo "Auszufuehrendes Kommando: $1"
eval nice -n 19 $1
Ich komm allerdings noch nicht so ganz drauf, warum es ohne eval nicht geht...
meinereinerseiner
26-01-2007, 12:56
folgendes funktioniert bei mir:
#!/bin/bash
echo "Auszufuehrendes Kommando: $1"
eval nice -n 19 $1
Ich komm allerdings noch nicht so ganz drauf, warum es ohne eval nicht geht...
klasse - klappt!
tausend dank
der tom
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.