#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,)'