PDA

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

zst
24-01-2007, 21:27
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

rais
26-01-2007, 00:19
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