Котировка в ошибке аргументов функции
Вопрос
Как следует исправить 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
Решение
TL; DR: Используйте массив.
command=(f --option="One Two Three" --another_option="Four Five Six")
"${command[@]}"
Другие советы
Вы не можете исправить переменную. Но ты можешь:
eval $command
Не связан с StackOverflow