Linux bash, как избежать использования «$@» для удаления/удаления кавычек из аргументов/значений и разгруппировки всех аLinux

Ответить Пред. темаСлед. тема
Anonymous
 Linux bash, как избежать использования «$@» для удаления/удаления кавычек из аргументов/значений и разгруппировки всех а

Сообщение Anonymous »

Я с нетерпением жду помощи в решении этой моей маленькой, но утомительной проблемы, которую, кажется, я не могу решить уже несколько недель.
Я безуспешно попробовал несколько обходных путей. 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'
в этом случае "$@" расширяет все аргументы нежелательным образом, и я не могу позволить ' getopt' правильно проанализировал значение параметра.
Я пробовал другой способ его кодирования и вызова сценария, но проблема не устранена (по-другому):

Код: Выделить всё

$> ./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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Запустите файл Python из bash, отправьте параметр из bash в py и выведите результат с помощью echo на bash [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    122 Просмотры
    Последнее сообщение Anonymous
  • Как заключить команды в двойные кавычки внутри кавычек на bash с помощью C#?
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Как заключить команды в двойные кавычки внутри кавычек на bash с помощью C#?
    Anonymous » » в форуме Linux
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как избежать двойных кавычек в строке?
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Как избежать двойных кавычек в строке?
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»