将变量从python脚本传递给bash脚本

时间:2014-08-05 13:42:54

标签: python linux bash shell

目前正在尝试将我的python脚本中的参数传递给我创建的bash脚本。如何从python脚本获取用户输入到我的bash脚本?

这是我的python脚本的代码'传递参数.py'我曾经尝试将变量(循环)发送到我的bash脚本。我已经测试了这个python脚本(在我调整代码之后)通过将输出发送到另一个用于读取输入的python脚本。

loop = str(sys.argv[1])
subprocess.check_call( ["./test.sh", loop], shell=True)

这是我的bash脚本的代码' test.sh'。我已经测试了这个脚本,以确认当我从命令行调用bash脚本时它确实收到了用户输入。

echo "This number was sent from the passParameters.py script: " $1

1 个答案:

答案 0 :(得分:4)

如果您使用shell=True,则可执行文件为/bin/sh,然后调用test.sh但从不会看到loop变量。您可以设置shell=False并将#!/bin/sh添加到shell脚本

#! /bin/sh
echo "This number was sent from the passParameters.py script: " $1

subprocess.check_call( ["./test.sh", loop], shell=False)

或将变量作为字符串传递:

subprocess.check_call( ["./test.sh %s" % loop], shell=True)
无论如何,不​​推荐{p> shell=True