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 に答える