Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何首先使用sudo登录,然后运行unixshell脚本的其余部分_Shell_Unix - Fatal编程技术网

如何首先使用sudo登录,然后运行unixshell脚本的其余部分

如何首先使用sudo登录,然后运行unixshell脚本的其余部分,shell,unix,Shell,Unix,我正在致力于自动化部署脚本,我必须以sudo用户的身份运行所有步骤,当我尝试在我的脚本中首先执行sudo时,如下图所示,它会提示我输入密码,然后脚本的其余部分不会执行,当我退出sudo时,它只会执行 "sudo -u username bash" 请帮助我如何实现这一点,否则我必须先使用sudo登录,然后只运行我的脚本?您可以改为使用sudo运行脚本 sudo sh ./script.sh 这样,整个脚本将作为sudo用户运行,并且只提示一次 如果您仍想使用sudo-u,可以这样使用它,而

我正在致力于自动化部署脚本,我必须以sudo用户的身份运行所有步骤,当我尝试在我的脚本中首先执行sudo时,如下图所示,它会提示我输入密码,然后脚本的其余部分不会执行,当我退出sudo时,它只会执行

"sudo -u username bash" 

请帮助我如何实现这一点,否则我必须先使用sudo登录,然后只运行我的脚本?

您可以改为使用sudo运行脚本

sudo sh ./script.sh
这样,整个脚本将作为sudo用户运行,并且只提示一次

如果您仍想使用
sudo-u
,可以这样使用它,而不是:

sudo -u username bash
你可以做:

sudo -u username sh ./script.sh

sudo-u username bash
将作为指定用户启动新的bash shell。如果你不想要一个新的shell,为什么要这样做呢?谢谢,我不知道bash会创建一个新的shell