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

07-24 09:45
查看更多