SVNリポジトリが稼働しているかどうかをチェックするスクリプトを作成しました。結果は、戻り値に基づいています。
import subprocess
url = " validurl"
def check_svn_status():
subprocess.call(['svn info'+url],shell=True)
def get_status():
subprocess.call('echo $?',shell=True)
def main():
check_svn_status()
get_status()
if __name__ == '__main__':
main()
私が直面している問題は、URLを存在しないものに変更しても、戻り値は0になることですが、これをスクリプトの外部で実行する場合、つまり、ターミナルタイプに移動してからsvn info wrong url
、echo $?
戻り値は1ですが、Pythonでこれを再作成することはできません。ガイドラインはありますか?
更新後のTraceBack
Traceback (most recent call last):
File "svn_status.py", line 21, in <module>
main()
File "svn_status.py", line 15, in main
check_svn_status()
File "svn_status.py", line 8, in check_svn_status
p = sp.Popen(['svn info'], stdout=sp.PIPE, stderr=sp.PIPE)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 672, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1202, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or director
y