2016-08-17 2 views
1

現在、私は自分の環境変数を読み込むスクリプトを持っています。私の環境変数をsudoコマンドで利用できるようにするには?

#!/bin/bash 

set -x 

# sourcing my env variables 
. /etc/profile.d/company_env.sh > /dev/null 2>&1 

clear_known_hosts(){ 
    local known_hosts="${NAGIOS_HOME}/.ssh/known_hosts" 
    # clear 
    su - nagios -c "echo '' > ${known_hosts}" 

} 

をしかし、ソーシング一部を除去し、私が作成することができ、すべてのスクリプトでそれを追加したくないので、私のsudoコマンドは、私の環境変数を見つけることができません、:そして、私はこのようにそれを調達しています例えばNAGIOS_HOMEのように、これは空です。

提案がありますか?

+1

'sudo -E'または' sudo --preserve-env'? – anishsane

+0

@anishsaneこれを回答として追加します。 – Sinkingpoint

答えて

2

sudoには、これにはオプション-Eまたは長いオプション--preserve-envがあります。もちろん

Usage: sudo -E command args ... 

、あなたはそれがsudoに見えるようにするためには、親シェルから変数をエクスポートする必要があります。

+0

ええ、私もそのオプションを知っています。しかし、私はそれを使わずにsudoを使用しようとしていました。私はそれが良い選択肢ではないかと恐れているのですか? :) –

関連する問題