我有一个relay2.sh文件,它应该启动一个带有给定参数的python文件。所以我使用domoticz智能家居系统,我的任务是使用- script://relay2.sh 192.168.11.4 4196 1 1从domoticz启动外壳脚本,参数是- IP,端口,中继,RELAY_STATUS。我正在做的是,启动一个sh文件,并将参数从domoticz传递到sh文件。在此之后,我尝试使用sh文件中给定的参数启动一个python文件。但它不起作用。我真的不知道如何将参数从sh传递到py文件。
这是我的sh代码:
#!/bin/bash
echo "$1 $2 $3 $4 --test_vars-- (working)"
#!/usr/bin/python3
update.py $1 $2 $3 $4发布于 2020-06-04 19:01:18
您错误地使用了shebang。每个文件只能包含一个shebang (例如#!/bin/bash),并告诉命令行界面在执行脚本时使用哪个可执行文件。
因为您的脚本应该是一个shell脚本,所以要使用的方法是#!/bin/bash。
为了将参数传递给python脚本,需要调用python3 update.py $1 $2 $3 $4,假设python3在PATH变量上。您可以使用echo $PATH和/或which python3检查这一点
如果您希望从命令行执行纯python脚本,则必须将python shebang (#!/usr/bin/python)添加到python文件并处理该脚本中的参数。可以在here上找到一个很好的教程。
https://stackoverflow.com/questions/62192871
复制相似问题