我需要从文件中获取命令值并执行命令,
在我的情况下,我在终端上打印此命令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
中。