PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASH Script: dynamische Parameterliste



ViperT
22.10.07, 15:48
Hi,
ich bastel mir in letzter Zeit immer mehr Bash Scripte,
dabei habe ich aber immer wieder Probleme, wenn ich Parameter für Funktionen oder externe Programme "dynamisch" zusammenstelle.

Ich habe mal ein kleines Beispiel geschrieben:

#!/bin/bash

function f {
echo $1
echo $2
echo $3
}

params="\"Hallo Welt\""
params+=" \"Hallo Himmel\""
params+=" Hölle"

echo Params: $params

f $params

Eigentlich würde ich erwarten, dass die Ausgabe durch die Funktion f sowas wie

Hallo Welt
Hallo Himmel
Hölle
ist. Aber statt die " zu berücksichtigen, trennt er gnadenlos bei allen Leerzeichen auf. Die Ausgabe wird dann:

~ $ /tmp/b
Params: "Hallo Welt" "Hallo Himmel" Hölle
"Hallo
Welt"
"Hallo

Meine Frage ist jetzt, wie bekomme ich ihn dazu, die Parameterliste so auszuwerten, wie ich es eigentlich erwarte?!

Meine Parameter stelle ich meist auf unterschiedlich weise zusammen, aber ich hab oft das Problem, dass ich Leerzeichen mit drin habe, die ich übergeben muss und die nicht als Trenner zu behandeln sind.

Ich hoffe ihr könnt mir dabei helfen, irgentwie fehlen mir wohl die passenden Suchworte um mit der Forensuche oder Suchmaschinen auf einen grünen Zweig zu kommen :(

thx, MfG ViperT

marce
22.10.07, 15:52
vermutlich musst Du

IFS="
"
setzen...

Luzi P
22.10.07, 18:27
Hallo,

versuch mal

IFS='#'

params="\"Hallo Welt\"#"
params+=" \"Hallo Himmel\"#"
params+=" Hölle"



Grüße, LP

ViperT
23.10.07, 09:45
Hallo,

versuch mal

IFS='#'

params="\"Hallo Welt\"#"
params+=" \"Hallo Himmel\"#"
params+=" Hölle"



Grüße, LP

so geht es, auch wenns ein bischen "umständlich" ist *g*, vielen Dank :)

marce
23.10.07, 09:48
http://www.linuxforen.de/forums/showpost.php?p=1584808&postcount=2 übersehen?

Luzi P
23.10.07, 11:39
Das habe ich bei mir auch ausprobiert und es hat nicht funktioniert.

Grüße, LP