我有一个带有一系列选项菜单的bash脚本,该脚本允许用户设置其新系统,这是Ubuntu服务器,没有GUI,只有CLI(它将是虚拟机映像)。
我已经通过编辑/etc/default/grub和来强制进行root登录/etc/init/tty1.conf,因此用户直接放入了root命令提示符。从那里,用户必须输入./whiptail.sh以启动脚本并获得提示信息以进一步设置主机。
现在,我希望我的脚本是登录后显示的内容,而不是将用户拖放到命令提示符下的内容。我怎样才能做到这一点?
的所有交互式会话都bash将读取初始化文件~/.bashrc。
所以,你可以只添加脚本在的结束root的.bashrc,即/root/.bashrc,假设脚本是可执行的:
echo '/path/to/whiptail.sh' >>/root/.bashrc
Run Code Online (Sandbox Code Playgroud)
现在,root打开新的交互式外壳程序时,脚本将始终运行。如果只想在仅登录时运行,而不是所有交互式会话,则应该使用~/.bash_profile/ ~/.bash_login/ ~/.profile(该命令后的第一个可用)。
如果您希望它是全局的,请将您的脚本添加到
/etc/profile
Run Code Online (Sandbox Code Playgroud)
如果您希望它是特定于用户的,请将您的脚本添加到
/home/$USER/.profile
Run Code Online (Sandbox Code Playgroud)
考虑在此处对原始答案进行投票:https ://unix.stackexchange.com/a/56088/343022