第一次登录读取isuue
问题描述:
我想执行脚本,基本上询问用户一个问题,并根据用户配置定制应用程序的值的输入。问题是它得到执行,但不会提示用户输入并使用默认值。第一次登录读取isuue
我呼吁脚本root用户的.bashrc如下
if [ -e /opt/services_vm/autoUpgrade.sh ];
then
/opt/services_vm/autoUpgrade.sh
fi
自动升级脚本看起来如下
#!/bin/bash
while true; do
read -p "Do you want to enable automatic upgrade [Y|y - Yes] [N|n - No] [Yes] ?" yn
case $yn in
[Yy] | "") sed -i "s#<autoupgrade-enabled>OFF<\/autoupgrade-enabled>#<autoupgrade-enabled>ON<\/autoupgrade-enabled>#g" /opt/avaya/SAL/gateway/SpiritAgent/config/agent/SPIRITAgent_1_0_PDComponentConfig.xml;
rm -rf /opt/services_vm/autoUpgrade.sh
exit;;
[Nn]) rm -rf /opt/services_vm/autoUpgrade.sh
exit;;
*) echo "Please answer yes or no.";;
esac
done
的问题是,对于输入和第一个case语句的不提示用户越来越默认执行。我可以在日志中看到。另外root用户必须根据我所做的配置在第一次尝试时更改pass。它迫使用户更改通过并在脚本下执行,但采取默认输入而不是提示给用户。
答
我试过你的脚本,如下所示,把它放在.bashrc中,它按预期工作。它提示并且答案被采取行动(它回应正确的词)。先试一试。我觉得这个问题不是来自你的脚本。
#!/bin/bash
while true; do
read -p "Do you want to enable automatic upgrade [Y|y - Yes] [N|n - No] [Yes] ?" yn
case $yn in
[Yy] | "") echo YES;
exit;;
[Nn]) echo NO;
exit;;
*) echo "Please answer yes or no.";;
esac
done
答
由于它是自我删除脚本,它在第一次root登录之前被删除。不知道如何执行root .bashrc,可能来自其他脚本。我的错误印象是它没有被第一个root用户登录。 谢谢Kambiz。
它工作,如果我把它手动。但我希望它只能在第一次root登录时执行,因为这个原因在脚本中编写了自我删除语句。其虚拟机,其中我为美分操作系统创建映像,并将其部署到计算机上。我已经配置root用户在第一次登录时更改密码,并希望在此之后执行脚本。 – user530158
由于脚本调用来自.bashrc文件,我期待脚本在root登录后执行。不知道在什么时候执行脚本。 – user530158