Quoting in the function arguments error
문제
How should be fixed command
variable to get a correct behavior?
#!/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"
First calling is wrong, second - right
$> ./test.sh
Two
--another_option=Four Five Six
해결책
BASH FAQ entry #50: "I'm trying to put a command in a variable, but the complex cases always fail!"
TL;DR: Use an array.
command=(f --option="One Two Three" --another_option="Four Five Six")
"${command[@]}"
다른 팁
You cannot fix the variable. But you can:
eval $command
제휴하지 않습니다 StackOverflow