Bash:如何创建一个包含多单词标记的参数列表的变量?
我想创建一个变量,它本质上是传递给命令或函数的参数列表。下面带有arg_字符串的模式适用于foo、bar和baz,但不适用于“多字标记”,我希望命令将其视为单个参数Bash:如何创建一个包含多单词标记的参数列表的变量?,bash,Bash,我想创建一个变量,它本质上是传递给命令或函数的参数列表。下面带有arg_字符串的模式适用于foo、bar和baz,但不适用于“多字标记”,我希望命令将其视为单个参数 #!/bin/bash function func() { for arg in "$@" do echo ${arg} done } arg_string="foo bar baz \"multi word token\"" arg_string="foo bar baz multi\ word\ token
#!/bin/bash
function func() {
for arg in "$@"
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
只需在函数调用之前粘贴一个
eval
:
eval func ${arg_string}