Я безуспешно попробовал несколько обходных путей. p>
Я пишу bash-скрипт, использующий 'getopt', но моя проблема возникает раньше, при распаковке аргументов с помощью "$@".< /p>
У меня есть следующее, вот как я называю свой сценарий: (это работает)
Код: Выделить всё
$> ./script --start "test1" --end "test2"
Parsed result: --start 'test1' --end 'test2' --
Но если я запускаю его, передавая более сложный контент, как значение параметра/опции, то я не смогу достичь желаемого результата, например:
Код: Выделить всё
$> ./script --start "test1" --end "test2 abc def"
PARSED: --start 'test1' --end 'test2' -- 'abc' 'def'
Я пробовал другой способ его кодирования и вызова сценария, но проблема не устранена (по-другому):
Код: Выделить всё
$> ./script --start "test1" --end="test2 abc def"
Код: Выделить всё
$> ./script --start "test1" --end "\"test2 abc def\""
Код: Выделить всё
$> ./script --start "test1" --end '"test2 abc def"'
Это строка, на которой я чаще всего застреваю из-за этой проблемы:
Код: Выделить всё
PARSED=$(getopt --shell="bash" --options=$_options --longoptions=$_longopts --name "$0" -- "$@")
# Parsing command arguments:
while [[ $# -gt 0 ]]; do
case $1 in
[...]
Надеюсь, я достаточно ясно выразил то, что ищу.
Спасибо за заранее свяжитесь со всеми, кто сможет чем-либо помочь или разъяснит, в каком направлении мне следует двигаться, чтобы решить эту проблему или найти обходной путь.
Подробнее здесь: https://stackoverflow.com/questions/791 ... s-value-an