我有一个 bash 片段我想移植到 Python。它查找 SVN 所在的位置以及它是否可执行。
SVN=`which svn 2>&1`
if [[ ! -x $SVN ]]; then
echo "A subversion binary could not be found ($SVN)"
fi
这是我目前在 Python 中使用 subprocess 模块的尝试:
SVN = Popen('which svn 2>&1', shell=True, stdout=PIPE).communicate()[0]
Popen("if [[ ! -x SVN ]]; then echo 'svn could not be found or executed'; fi", shell=True)
这不起作用,因为虽然我确实将 SVN 的位置保存在 Python 的本地命名空间中,但我无法从 Popen 访问它。
我还尝试组合成一个 Popen 对象:
Popen("if [[ ! -x 'which svn 2>&1']]; then echo 'svn could not be found'; fi", shell=True)
但是我收到了这个错误(不用说,看起来很笨拙)
/bin/sh: -c: line 0: syntax error near `;'
/bin/sh: -c: line 0: `if [[ ! -x 'which svn 2>&1']]; then echo 'svn could not be found'; fi'
是否有 Python 版本的测试构造“-x”?我认为那将是理想的。其他解决方法也将不胜感激。
谢谢