У меня есть странная проблема с bash/optparse. Мне нужно передать строку в мой скрипт python, когда строка определена.OptParse, пробелы и bash
Я использую следующий код:
./lol.py `if [ -n "$URL" ]; then echo -u \"$URL\"; fi`
и здесь есть питон скрипт:
def main():
parser = OptionParser()
parser.add_option("-u", dest="url")
opts, args = parser.parse_args()
print opts.url
Когда я проверить мое выражение Баш это, кажется, работает:
[email protected]:~$ URL="http://lol.com/my project/"
[email protected]:~$ echo `if [ -n "$URL" ]; then echo -u \"$URL\"; fi`
-u "http://lol.com/my project/"
Однако когда Я запускаю скрипт python с аргументом
[email protected]:~$ ./lol.py `if [ -n "$URL" ]; then echo -u "$URL"; fi`
http://lol.com/my
он обрезает часть строки после пробела.
Не могли бы вы объяснить, почему это происходит и как заставить его работать?
Если версия python, использующая 2.7 или выше, рекомендуется использовать модуль «argparse». Использование модуля optparse устарело (http://docs.python.org/library/optparse.html) – sateesh