目前正在尝试将我的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
答案 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
。