首页 > 解决方案 > 将变量从一个 shell 传递到另一个 shell 以执行 python 脚本

问题描述

我有一个 python 脚本,它接受一个参数并返回一个乘法。我有这个 shell 脚本 pythoncall.sh: python /user/mult.py var1

我想在循环中为不同的参数值运行它:second.sh

for i in 1 2 3
  do 
  var1=$i
  ./pythoncall.sh
done

但我没有得到结果,因为我没有传递我认为的变量。我的错误是 IndexError: list index out of range。

蟒蛇脚本:

import sys
def main(argv):

    num1=sys.argv[1]
    len1=int(num1)*3
    print(len1)

if __name__ == '__main__':
    main(sys.argv)

标签: pythonlinuxbashshell

解决方案


因此,直接的答案是您需要为第二个 shell 脚本导出变量才能看到它:

export var1=$i

但是为什么你需要变量和第二个 shell 脚本呢?为什么不直接调用python脚本:

for i in 1 2 3
do
  python /user/mult.py $i
done

推荐阅读