如何从Linux中的文件或变量中获取命令值

时间:2014-04-18 07:06:34

标签: linux input command

我需要从文件中获取命令值并执行命令, 在我的场景中,我正在终端上打开这个命令

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代码中获取的值。 所以请告诉我如何动态传递此值并成功执行此命令。 在此先感谢!!

1 个答案:

答案 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中。