ログインするには、パスワードを入力せずにuser1
別のUnixユーザー環境でプロジェクトを実行したいと思います。user2
「プロジェクト」とは、次のことを意味します。
- 現在の$HOME
-call user2
bash起動スクリプトを変更します(プロンプトとグローバル変数を取得するため)。
私は小さなスクリプトを書いたswitch_user_env.sh
。
HOME="/usr/users/$1"
cd "$HOME"
bash
. /etc/profile
if [ -f "$HOME/.bash_profile" ]; then
. "$HOME/.bash_profile"
fi
if [ -f "$HOME/.profile" ]; then
. "$HOME/.profile"
fi
私はそれをそう呼ぶ:. ./switch_user_env.sh user2
現在、シェルはbashに正しく変更されていますが、起動スクリプトは呼び出されませんでした。
何が間違っているかを理解するのに役立ちますか?
ありがとうございます!
[編集]
switch_user_env.sh
ソースコードはGitHubにあります。https://github.com/pierrefevrier/switch-user-env
答え1
スクリプトの残りの部分(以降強く打つcall)はbashを終了した後に実行されます(exitコマンドまたは「Ctrl + d」入力)。スクリプト内でbashを呼び出すと、追加の実行を制御できます。
これは更新されたバージョンです。
HOME="/usr/users/$1"
cd "$HOME"
SOURCE_PROFILE=/etc/profile
if [ -f "$HOME/.bash_profile" ]; then
SOURCE_PROFILE="$HOME/.bash_profile"
fi
if [ -f "$HOME/.profile" ]; then
SOURCE_PROFILE="$HOME/.profile"
fi
bash --rcfile "$SOURCE_PROFILE"