引用函数参数错误

时间:2011-09-08 21:03:09

标签: bash quoting

如何修复command变量以获得正确的行为?

#!/bin/bash

function f ( )
{
    echo "$2"
}
command="f --option=\"One Two Three\" --another_option=\"Four Five Six\""
$command

f --option="One Two Three" --another_option="Four Five Six"

第一次打电话是错误的,第二次是正确的

$> ./test.sh 
Two
--another_option=Four Five Six

2 个答案:

答案 0 :(得分:2)

BASH FAQ entry #50: "I'm trying to put a command in a variable, but the complex cases always fail!"

TL; DR:使用数组。

command=(f --option="One Two Three" --another_option="Four Five Six")
"${command[@]}"

答案 1 :(得分:0)

您无法修复变量。但你可以:

eval $command