Имам скрипт, който изпълнява 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 "$@"