Выполнение команды в сценарии оболочки, содержащей "-" (дефис) - PullRequest
0 голосов
/ 23 мая 2018

Я хочу выполнить приведенную ниже команду в сценарии оболочки

CMD="/abc/def/ghi command1 command2 -p $VARIABLE --command3 true"

при выполнении этого exec $CMD замены дефиса одиночными кавычками, вставляя отладочный вывод

+ exec '/abc/def/ghi command1 command2 ' 'p VALUE ' '' 'command3 true'

Как с этим справиться?

1 Ответ

0 голосов
/ 23 мая 2018

Чтение Я пытаюсь поместить команду в переменную, но сложные случаи всегда терпят неудачу!

Вы хотите использовать массив для хранения команды

cmd=(/abc/def/ghi command1 command2 -p "$variable" --command3 true)
exec "${cmd[@]}"

Или функция, но я не уверен, как exec функцию, если вы не поместите ее в функцию

cmd() { exec /abc/def/ghi command1 command2 -p "$variable" --command3 true; }
cmd

Не используйте ALL_CAPS_VARNAMES: оставьте те, которые зарезервированы для оболочки.

...