su - ユーザーからエクスポートコマンドが見つかりません。

su - ユーザーからエクスポートコマンドが見つかりません。

ルートから始めて別のものを使いたいです$USER。しかし、正しい$ORACLE_HOME合計$PATH$USER

このコマンドを使用するとエラーが発生します。export: command not found

su - $USER -c "export ORACLE_HOME=$ORA_HOME;export PATH=$ORA_HOME/bin:$PATH;sqlplus / as sysdba"

私の質問は、ルートディレクトリでスクリプトの実行を開始するには、どのように他のユーザーの環境変数をエクスポートし、その環境変数を使用してコマンドを実行しますか?

ベストアンサー1

Steeldriverが述べたように、ターゲットユーザーはおそらくcshまたはtcshを使用しています。使用しているシェルを確認するには、明示的に呼び出します。

su - "$USER" -c \
  "/bin/ksh -c 'export ORACLE_HOME=$ORA_HOME;export PATH=$ORA_HOME/bin:$PATH;sqlplus / as sysdba'"

(サブ)シェルには、デフォルトシェルから(エクスポートされた)環境変数が含まれていますが、ユーザーのデフォルトシェルから(エクスポートされていない)シェル変数は含まれません。

おすすめ記事