无法从python脚本访问shell变量

时间:2017-04-14 19:44:43

标签: macos python-2.7 shell terminal

我正在使用OSX终端和Python 2.7

我的shell脚本:

common\mail\html.php

我的python脚本:

#!/bin/bash
echo Enter the name of the file
read fileName
python gulp.py  

我没有尝试过积极的结果:

import os                       #import vars
try:
    print os.environ["fileName"]    #print imported var
except KeyError:
    print "Please set the environment variable" 
fileTitle=fileName + '.inp'
f=open('fileTitle', 'r')
line=f.readlines()
print line[0]

 import sys
var1=sys.arg[1]

shell和python脚本位于同一个文件夹中

提前谢谢!

1 个答案:

答案 0 :(得分:1)

变量需要在shell中标记为export,否则不会传递给其他程序:

#!/bin/bash
echo Enter the name of the file
read fileName
export fileName
python gulp.py  

注意事项:

  • export只要在python之前运行,就可以去任何地方。它不必在赋值变量之后。
  • 在bash中使用小写变量名(就像你正在做的那样)是一个很好的习惯,可以防止错误。但是,导出的变量通常是大写的。您可以通过导出具有该值的其他名称来同时使用这两个名称:export FILENAME="$fileName"或使用前缀分配:FILENAME="$fileName" python gulp.py