我尝试将命令行的输出与已经定义的变量进行比较 但逻辑总是抛出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)
为什么比较失败?
答案 0 :(得分:2)
命令的输出包含尾随换行符。您应该使用str.strip
或str.rstrip
删除它:
output = subprocess.check_output(cmd1, shell=True).strip()