2011-06-12 97 views
0

我想創建一個變量,它基本上是傳遞給一個命令或函數的參數列表。下面的arg_string模式適用於foo,bar和baz,但不適用於「多字詞標記」,我希望命令將其看作單個參數。Bash:如何創建一個包含多詞標記參數列表的變量?

#!/bin/bash 
function func() { 
    for arg in "[email protected]" 
    do 
    echo ${arg} 
    done 
} 

arg_string="foo bar baz \"multi word token\"" 
arg_string="foo bar baz multi\ word\ token" 
arg_string="foo bar baz 'multi word token'" 
func ${arg_string} 

這裏是輸出:

foo 
bar 
baz 
'multi 
word 
token' 

當我想:

foo 
bar 
baz 
multi word token 

回答

1

在函數調用前只要堅持一個eval

eval func ${arg_string} 
+0

感謝,偉大工程! – 2011-06-13 15:56:52

相關問題