/ / Как да предаваме аргументи с кавички като аргументи - bash, атрибути, опции, кавички

Как да предавате аргументи с кавички като аргументи - баш, атрибути, опции, котировки

Имам скрипт, който изпълнява C ++ приложение с някои опции. Това, което искам да направя, е да дам на C ++ приложения като опция за скрипта.

options=$1
...
./app $options

Проблемът е, че когато се опитвам да прехвърля опции като

./script "-a -C "9.626 0.262 8.266""

атрибутът на опцията -C е просто "9.626" вместо целия низ. Някакви идеи как да се реши това? :)

Отговори:

0 за отговор № 1

Трябва да използвате масив.

options=( -a -C "9.626 0.262 8.266" )
./script "${options[@]}"

Вътре script, $1 е -a, $2 е -C, и $3 е 9.626 0.262 8.266, (Забележете, че кавичките не са част от $3; те се използват само за защита на интервалите, докато задават аргументите на script, Вероятно възнамерявате да прехвърлите всичките три аргумента на някаква друга команда и ще го направите

other_command "$1" "$2" "$3"

или по-общо, за да се приспособи произволен брой аргументи

other_command "$@"