2017-01-07 12 views
-2

でのexec後のスクリプトの実行を続行:は、私はそのようなコード持っているbashの

echo 'test' 
usr=$USER 
sudo sh -c "exec su $usr" 
echo 'test1' 

そして、たとえばecho 'test'ため、私は私が新しいシェルで再ログインするrequirs何かを設定するコードです。しかし、コードがecho 'test1'の場合、再ロードされた新しいシェルを使用して設定を続ける必要があります。

自動的に行う方法はありますか?新しいシェルを並行して起動するか、それとも何かのようにしますか?

Ubuntu 14.04、bash。

更新:

例えば、私はのvirshをインストールする必要がありますが、インストールした後、それを実行するためにsudoを必要とします。私のスクリプトは、$ USERをlibvirtdグループに追加するグループを構成します。それから私は再ログインする必要があります。私はsudo sh -c "exec su $usr"でそれをすることができます。その後、私は実行を続けるためにスクリプトが必要です。それをする方法はありますか?

+0

それはあなたがやろうとしているものは不明です。もっと説明をお願いしますか? – soundslikeodd

+0

こんにちは。私は私の質問を更新しました。 – GALIAF95

答えて

2

visudo sudoersの設定で変更して、パスワードの入力を求められなくなりました。 man visudoおよびman sudoersを参照してください。

は、私が使用することをお勧めheredoc

echo 'test' 
usr="$USER" 
sudo su - "$USER" << EOF 
echo 'test1' 
EOF 
+0

働いているようです。 echo 'test1'は新しいサブシェルで実行されますか?しかし私は、環境を更新するために、sudo sh -c "exec su $ usr"のようなコマンドで現在のシェルを変更する必要があると思います。問題の私の更新を見てください。 – GALIAF95

+0

これは機能しています。ありがとうございました。 – GALIAF95

関連する問題