HI伙计们我是脚本新手,我在python和wxpython做小项目,它做自动化。现在我在将变量从python发送到shell脚本时遇到了问题。 我必须连接ftp,然后下载用BASH编写的文件(第一个脚本)。该bash脚本再调用一个bash脚本(第二个脚本),该脚本也在ftp服务器中。但是第一个脚本中的2脚本名称没有硬编码。所以我必须从我的python脚本发送“脚本名称”,这是我现在无法做到的。 所以我需要你的帮助解决我的问题,已经通过谷歌,但找不到任何东西。
提前致谢。
我已经尝试过直接运行它,但它仍然没有采取第二个参数,所以我已经完成了一次脚本。发现了,
当第一个脚本中已经配置$ 2 $ 3 $ 7时(那些是在myproject.sh中构建的)
请帮我解决这个问题..
答案 0 :(得分:1)
最快捷,最简单的方法是让您的Python脚本创建一个使用bash语法设置变量名称的文件,然后让您的第一个bash脚本获取它。采购它将基本上设置该变量。
因此在Python中,您希望在某处输出该文件:
name_of_script="/path/to/second/script.sh"
with open("/my/path/scriptnamevar.sh", "w") as f:
#Output to bash-recognized variable setting syntax
f.write("SCRIPT_NAME={}".format(name_of_script))
然后在您的第一个脚本中,您只需要获取scriptnamevar.sh(或您决定调用它的任何内容)。
source /my/path/scriptnamevar.sh
# This should output whatever name_of_script was in python
echo $SCRIPT_NAME
答案 1 :(得分:0)
您可以使用命令行参数。由于您使用子进程来调用第一个bash脚本,因此您可以将其修改为如下所示:
subprocess.call(["bashScript1Name", "bashScript2Name"])
然后在bashScript1Name中,第二个脚本的名称将在变量$ 1
中