Это не имеет смысла для меня.Я определяю 5 переменных:
a='a'
b='b'
c='c'
d='d'
e='e'
Затем я пытаюсь построить команду, используя эти переменные:
command = "for i in \`python {0}_getSyslogs.py {1} {2} {3}\`\ndo\ngunzip -c {3}/\$i | egrep -i '{4}' >> " .format(a,b,c,d,e)
Это работает, как и ожидалось, с полученной командой:
"for i in \\`python a_getSyslogs.py b c d\\`\ndo\ngunzip -c d/\\$i | egrep -i 'e' >> "
Что меня порадует, если я добавлю еще один компонент в строку (т. Е. "Test"), все рухнет в том, что больше не будет подмены:
command = "for i in \`python {0}_getSyslogs.py {1} {2} {3}\`\ndo\ngunzip -c {3}/\$i | egrep -i '{4}' >> " + "test" .format(a,b,c,d,e)
Полученная командавыглядит следующим образом:
"for i in \\`python {0}_getSyslogs.py {1} {2} {3}\\`\ndo\ngunzip -c {3}/\\$i | egrep -i '{4}' >> test"
Вероятно, это проблема "не вижу леса сквозь деревья", но я пробовал все виды различных комбинаций, и ничего не помогло.
Я использую Python 2.7.10 в CentOS:
sys.version '2.7.10 (по умолчанию, 6 октября 2017 г., 22:29:07) \ n [GCC 4.2.1 Совместимый Apple LLVM 9.0.0 (clang-900.0.31)] '
Что я делаю не так?