从bash脚本更改用户

从bash脚本更改用户,bash,shell,Bash,Shell,我有一个用户“chad” 我正在使用用户“server”登录linux计算机 我正在创建一个脚本,并尝试添加下面的命令 sudo su -s /bin/bash chad 因此,我可以进入用户chad并从该脚本执行其余命令 我该怎么做 下面是我的剧本 #!/bin/bash exec /bin/su -s /bin/bash chad - << 'EOF' echo "pwd" pwd cd /home/chad/py2.0/test/py_i

我有一个用户“chad”

我正在使用用户“server”登录linux计算机

我正在创建一个脚本,并尝试添加下面的命令

 sudo su -s /bin/bash chad
因此,我可以进入用户chad并从该脚本执行其余命令 我该怎么做

下面是我的剧本

   #!/bin/bash

   exec /bin/su -s /bin/bash chad - << 'EOF'

   echo "pwd"
   pwd

   cd /home/chad/py2.0/test/py_it/


   echo "git branch"
   git branch



   read -p "Are you sure about branch? (yes/no)" reply

   choice=$(echo $reply|sed 's/\(.*\)/\L\1/')

   if [ "$choice" = 'yes' ] 
   then
   echo "Welcome you selected yes, wait for 3 seconds to get output";
   sleep 3;
   echo "git pull for py2.0";
   "git pull origin integration/py2.0";

   elif [ "$choice" = 'no'  ]
   then

   echo "You selected 'no', hence exiting in 3 seconds";
   sleep 3
   exit 0
   else
   echo "invalid answer, type yes or no";
   fi
   EOF

您必须在脚本中添加以下行:

exec sudo-u chad/bin/sh-不起作用吗?如果不起作用,您是否尝试将用户导出到脚本中
export$USER=chad
或者您可以使用
setenv
不工作。当我使用exec sudo-u/bin/bash chad时,您能否提供更多详细信息,例如在commandScript=#之后插入:id/bin/bash exec su-s/bin/bash chad-output=sudo./test.sh./test.sh:第35行:警告:此处第3行的文档由文件结尾分隔(通缉
eof')pwd git branch*集成/py2.0主bash:line 14:cho:未找到命令bash:line 15:预期的条件二进制运算符bash:line 15:附近的语法错误
^[Yy]$'bash:第15行:`if[=~^[Yy]$]'
   git branch
  * integration/py2.0
   master
  invalid answer, type yes or no
id
exec sudo -u chad /bin/sh - << 'EOF'
id
id
id
EOF