для явного перебора строки

#bash

#bash

Вопрос:

У меня есть программа на python, которую мне нужно запустить таким образом

 python myprog.py --tuple "(20,10,)"
  

Я хочу перебрать несколько типов кортежей и запустить свою программу

 $ for i in "(20,10)" "(40,100,2)" ; do echo $i ; done
(20,10)
(40,100,2)
  

Однако моя программа принимает строку только явно

 python myprog.py --tuple (20,)
-bash: syntax error near unexpected token `('
  

Как мы могли бы явно перебирать кавычки? Спасибо.

Комментарии:

1. Не могли бы вы поделиться соответствующими частями вашего кода?

2. parser.add_argument(‘—tuple’, help=’tuple’, default=»(100,)», type=str)

3. Что вы подразумеваете под «перебором кавычек»?

4. Где вы хотели выполнить эту итерацию… в python или bash? Вы хотите for i in "(20,10)" "(40,100,2)" ; do python myprog.py --tuple "$i" ; done ?

5. Похоже на вопрос bash, а не на вопрос Python.

Ответ №1:

Это «проблема» bash, а не python. ( является специальным символом для bash и должен быть экранирован:

 python myprog.py --tuple (20,)
  

или предоставляется в виде фиксированных строк:

 python myprog.py --tuple '(20,)'