在bash脚本的一个部分中,我需要ssh到远程框中,更改为root,然后部署rpm。我的代码在更改为root后卡住了,我不知道为什么。任何帮助将不胜感激。理想情况下,我希望它能够进入ssh,切换到root,部署rpm,然后退出ssh会话。
user="user"
host="hostname"
echo "Enter password: "
read -s pw
ssh -t "$user"@"$host" "sudo su; $pw; rpm -Uvh rpmtodeploy.rpm;"
这是我目前得到的:
user @ localhost:〜$ bash rpm.sh
输入密码:
[root @ hostname / home / user]#
答案 0 :(得分:1)
除非你背景命令,否则bash会在执行下一个命令之前等待它退出。由于su
正在生成一个交互式shell,它将继续运行直到您关闭它。你应该直接使用sudo:
sudo rpm -Uvh rpmtodeploy.rpm
如果您sudo
su
访问rpm
但访问-c
,请使用sudo su -c 'rpm -Uvh rpmtodeploy.rpm'
选项:
{{1}}