sudoで実行されるbashスクリプトを作成している場合は、ユーザーシェルに滞在させるにはどうすればよいですか?

sudoで実行されるbashスクリプトを作成している場合は、ユーザーシェルに滞在させるにはどうすればよいですか?

私はリポジトリのインストールを処理するためのbashスクリプトを書いています。主にいくつかの基本的な依存関係をチェックし、git cloneを頻繁に呼び出します。

このスクリプトを実行するときにファイルがインストールされていることを確認したいと思います。

git clone https://github.com/reticulatedpines/magiclantern_simplified.git 
echo "Exit status: ($?)" 
if [ $? -eq 0 ]; then
    echo "Magic Lantern has been cloned into ${ML_PATH}."
else
    exit 1
fi

問題は、リポジトリが現在の作業ディレクトリに複製されることです。これは私が望むものではありません。cd ~ホームディレクトリに戻ろうとすると、実際にはルートシェルに送信されます。

root@debian:~# (repository installs here).

これをどのように避けることができますか?

答え1

sudo -E <cmd>

-E「コマンド実行時にユーザー環境を維持する」を使用してsudoを実行します。

ユーザーエクスペリエンスを保存すると、現在の場所でコマンドが実行されます。

関連情報