このスクリプトではsudo
。その後、別のスクリプトをインポートしますが、スクリプトはスクリプトをインポートすると通常のユーザーに返されます。commands.sh
sudo
commands.sh
文書:main.sh
#!/bin/bash
user=ubuntu
export $user
sudo -u $user bash -c "source includes-shared/commands.sh"
文書:includes-shared/commands.sh
# debug command to see if $user is available
printenv
[ more commands...]
変数は$user
このcommands.sh
スクリプトに表示されなくなりました。つまり、printenv
他のコマンドには表示されません。ソーススクリプトで使用できるように
エクスポートするにはどうすればよいですか?$user
答え1
変数名に対してエクスポートを実行する必要があります。これで、エクスポートで表示される前に変数が参照され置き換えられます。
次のように変更してください。
export user
不足を参照してください$
現在のバージョンは基本的に次のようになります。
export ubuntu
$user
まず説明するからです。
sudo を使用すると、環境変数も失われます。保存する方法は2つあります。全体の環境を維持するか
sudo -E -u $user command
または必要な変数だけを維持してください。
sudo user=$user -u $user command