通过os.system将变量从python传递给bash shell脚本

时间:2012-12-19 01:06:59

标签: python bash

在下面的代码中,我构造了一个变量$ probe1,然后我想传递给bash脚本。我是下面的玩具示例,输出是空白的,即$ probe1无法识别os.system调用中的bash shell脚本。需要做什么?

for line1 in datfile:
    datmat=datmat+[line1.rstrip('\n').split('\t')]
        probe=datmat[i][0]
        snp1=datmat[i][2]
    probe1='permprobes'+probe+'pheno.pphe'
    os.system('echo $probe1')

2 个答案:

答案 0 :(得分:10)

似乎这就是你要做的事情:

In [2]: os.environ['probe1'] = 'hello'

In [3]: os.system('echo $probe1')
hello

但我不知道你为什么要这样做......

答案 1 :(得分:4)

os.system('echo {0}'.format(probe1))

probe1是一个python变量,而不是一个shell变量。

os.environ['probe1'] = probe1

将bash环境变量设置为python变量内容。一旦python脚本退出,环境变量就会消失。