我需要从文件中获取命令值并执行命令, 在我的场景中,我正在终端上打开这个命令
uci set wireless.@wifi-iface[0].encryption=psk
uci set wireless.@wifi-iface[0].key="your_password"
uci commit wireless
wifi
但我需要动态传递key的值,即“your_password”,即从文件或变量传递,我可以存储从python代码中获取的值。 所以请告诉我如何动态传递此值并成功执行此命令。 在此先感谢!!
答案 0 :(得分:1)
只需使用shell变量扩展,如下所示:
password='MYPASSWORD'
uci set wireless.@wifi-iface[0].key="$password"
这里重要的是$password
中的美元符号:它向shell发出信号,表明您想要的不是字符串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
中。