我需要从文件中获取命令值并执行命令,
在我的情况下,我在终端上打印此命令

uci set wireless.@wifi-iface[0].encryption=pskuci set wireless.@wifi-iface[0].key="your_password"uci commit wirelesswifi

但是我需要动态地传递键的值,即“ your_password”,即从文件或变量中,我可以存储取自python代码的值。
因此,请告诉我如何动态传递此值并成功执行此命令。
提前致谢!!

最佳答案

只需使用shell变量扩展,如下所示:

password='MYPASSWORD'
uci set wireless.@wifi-iface[0].key="$password"


这里重要的是$password中的美元符号:它向外壳程序发出信号,即您想要的不是字符串password本身,而是变量password(之前定义)指向的值。

如果要从文件中读取password的值而不是内联定义它,则可以使用两种方法。

第一种方法
创建一个配置文件(例如myscript.conf)并source。例如,myscript.conf将包含

password='MYPASSWORD`


并且myscript将包含

source myscript.conf
uci set wireless.@wifi-iface[0].encryption=psk
uci set wireless.@wifi-iface[0].key="$password"
uci commit wireless
wifi


请注意,这种方法可能存在安全漏洞(您写入myscript.conf的所有内容实际上都在Shell中执行)。

第二种方法
创建一个密码文件,然后阅读其内容。例如,密码文件将如下所示

MYPASSWORD


即,它将仅包含密码。另一方面,myscript将是

password=$(cat password_file)
uci set wireless.@wifi-iface[0].encryption=psk
uci set wireless.@wifi-iface[0].key="$password"
uci commit wireless
wifi


在这里,我们使用password_file读取cat的内容并将其存储到变量password中。

08-25 16:51
查看更多