因此,我有一个配置文件,在收到用户的提示响应后,我想对其进行更改。
read -p 'Your RPC Username: ' RPC_USER
sleep 1s
echo -e "${YELLOW}"
echo "$RPC_USER"
echo "----------------"
echo "Is this correct?"
echo -e "${RED}"
select yn in "Yes" "No"; do
case $yn in
Yes ) break;;
No ) read -p 'New RPC Username: ' RPC_USER
echo "$RPC_USER"
esac
done
在此之后,我想更改文件配置:test.conf。所以我尝试:
sed -i '1i RPC_USERNAME="$RPC_USER"' ~/test.conf
但是我唯一得到的是:
RPC_USERNAME="$RPC_USER"
同样是要能够在脚本执行期间将这些用户输入变量直接粘贴到配置文件中。
非常感谢您的帮助!
答案 0 :(得分:0)
变量不解析在单引号内。您必须使用双引号。
或直接将变量插入命令:
read -p 'Your RPC Username: ' RPC_USER
sleep 1s
echo -e "${YELLOW}"
echo "$RPC_USER"
echo "----------------"
echo "Is this correct?"
echo -e "${RED}"
select yn in "Yes" "No"; do
case $yn in
Yes ) break;;
No ) read -p 'New RPC Username: ' RPC_USER
echo "$RPC_USER"
sed -i '1i RPC_USERNAME="'$RPC_USER'"' ~/test.conf
esac
done
但是请注意,这是不安全的,因为如果用户用单引号输入名称-将会制动命令。所以你仍然需要逃脱