Não há necessidade de escapar ou mover o argumento para sua própria variável.
Mas, mantendo-o praticamente o mesmo, o seguinte funciona para mim:
#!/usr/bin/env bash
WS="/Users/danielbeck/Desktop"
PY_GET_MVN_VERS="from xml.dom.minidom import parse;dom = parse('${WS}/pom.xml');print [n.firstChild.data for n in dom.childNodes[0].childNodes if n.firstChild and n.tagName == 'version']"
function test_mvn {
MVN_VER=$( python -c "${PY_GET_MVN_VERS}" )
echo ${MVN_VER}
}
test_mvn
/Users/danielbeck/Desktop/pom.xml
é o POM mínimo de exemplo dos documentos do Maven:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
Saída:
[u'1']
Por favor, jogue fora seu código e use o meu (depois de ajustar WS
) ao invés de ajustar o seu até que ele funcione. Você tem alguns erros de sintaxe lá.