输出系统命令与已定义变量的字符串比较

时间:2014-04-06 12:58:03

标签: python

我尝试将命令行的输出与已经定义的变量进行比较 但逻辑总是抛出FALSE而不是TRUE。

$ sudo hdparm -I /dev/sda | grep Serial | awk '{print $3}'
6RA3X34P

在Python中:

hdserial="6RA3X34P"
cmd1="sudo hdparm -I /dev/sda | grep Serial | awk '{print $3}'"

output = subprocess.check_output(cmd1, shell=True)

def check_serial(string):
    if string != hdserial:
        print '\nQuitting..'
        sys.exit()

check_serial(output)

为什么比较失败?

1 个答案:

答案 0 :(得分:2)

命令的输出包含尾随换行符。您应该使用str.stripstr.rstrip删除它:

output = subprocess.check_output(cmd1, shell=True).strip()