シェルスクリプトから `$SUDO_USER` 環境変数にどのようにアクセスしますか?

シェルスクリプトから `$SUDO_USER` 環境変数にどのようにアクセスしますか?
  • 私の$USER環境$SHELL変数は/bin/zsh
  • ルートの私の$SHELL環境変数は次のとおりです。/bin/bash

私はUnixシェルスクリプトを使って実行していますsudo。このスクリプトでは$SHELLenv 変数$SUDO_USER/bin/zsh。ただし、このコマンドは次のことを行います。

if [ $SHELL != "/bin/zsh" ]; then
  pacman -S --needed --no-confirm zsh
  sudo -u $SUDO_USER chsh -s /usr/bin/zsh
fi

$SHELL実際、ルートの環境は可能です。どうやって行きます$SHELL$SUDO_USER

ありがとうございます。

編集する 最善の方法は、$SHELLこの変数に加えて異なる環境変数を持つことです。

ベストアンサー1

オプションを使用して環境をホストします-E, --preserve-envsudoたとえばsudo -E ./test.sh

いかなる環境も許可することはお勧めできません。よりコマンド環境に参加man sudoers

おすすめ記事