output = subprocess.check_output("./mount.sh", shell=True)
print output
if output == "expected_String":
print "Hurray!"
(print命令只是检查输出是否符合我的预期)。每次比较都会失败,我不知道为什么。我尝试了这个而不是check_output
(stdout, stderr) = Popen(["./mount.sh"], stdout=PIPE).communicate()
mountout = stdout
但我认为这不是问题所在,因为
print output
给了我期望的结果,但是如果我尝试将其与我的“ expected_String”进行比较,则始终为假。
最佳答案
我相信问题是您的输出末尾包含其他换行符。您可以通过调用.strip()
除去以下内容来修复该问题:
output = subprocess.check_output("./mount.sh", shell=True)
output = output.strip()
更新:如何找出一个字符串是否以换行符结尾?
考虑以下交互式会话:
>>> s = '''hello\n'''
>>> s.endswith('\n')
True