5

我跑

ssh root@myhost "sh -x" < myremotecommands.sh

其中 myremotecommands.sh 包含:

#!/bin/sh
sudo su
apt-get update
sudo su -l -p jenkins
whoami

但是命令 whoami 返回“root”。我需要成为用户 jenkins 才能执行一些安装。

如何在脚本中间切换到用户 jenkins ?

4

3 回答 3

8

您只需使用带有“-s /bin/bash”参数的“su”命令。之所以需要它,是因为不应该以交互方式使用 jenkins 用户,因此它没有定义 bash。

su jenkins -s /bin/bash

之后,“whoami”命令会将您报告为“jenkins”用户。

于 2014-03-11T22:46:01.390 回答
2

使用$USER. 这将为您提供您登录的用户名。Whoami返回您当前操作的用户。

于 2011-08-07T22:49:25.427 回答
1

问题解决了:

#!/bin/sh
sudo su
apt-get update
su jenkins <<HERE
whoami
echo usr=$USER
HERE

将输出:
jenkins
usr=root

来源: http ://www.daniweb.com/software-development/shell-scripting/threads/14498

于 2011-08-08T16:48:42.723 回答