python - 将变量从一个 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)
解决方案
因此,直接的答案是您需要为第二个 shell 脚本导出变量才能看到它:
export var1=$i
但是为什么你需要变量和第二个 shell 脚本呢?为什么不直接调用python脚本:
for i in 1 2 3
do
python /user/mult.py $i
done
推荐阅读
- javascript - 将数据推送到 Vue.js 数据属性,但新元素不会反应性地出现在 Google 地图上
- postgresql - 在一个脚本中从不同的表中多次删除
- unix - 使用 awk 计算组的主题实例
- maven - Maven 多模块 - 只构建一个子模块
- yii2 - Yii2 通过查询组合多个计数和分组
- javascript - 在Nodejs中重新分配变量时,存储旧变量的内存是否会空闲?
- regex - Scala中的动态正则表达式
- matlab - 如何在 MATLAB 的向量中将多个索引设为 NaN?
- linux - 如何将名称 FUNCTION 放宽为变量
- ms-access - 列显示源表.列名