エクスポートされた日付変数はサブシェルに表示されません。

エクスポートされた日付変数はサブシェルに表示されません。

現在、2つの異なるスクリプトを使用して2つのbashファイルを作成しています。このファイルは、後で比較/処理するために同じタイムスタンプを持つ2つのファイルを生成します。日付変数は最初のshで生成され、同じタイムスタンプを使用できるように2番目のshに渡す環境を作成しようとしています。私はそれを使用しています停止する2番目のスクリプトは反復プロセスであるため、終了するまでファイルにデータを入力し続けます。

1.sh

current_date_time="`date +%Y-%m-%d-%H:%M:%S`"
code 
OUTPUT=$current_date_time --ouput-format csv
(export current_date_time; sudo timeout 15 2.sh)

2.sh

echo "The variable is $current_date_time"
call loop
  code
  OUTPUT=$current_date_time.txt
loop

最初のスクリプトは正常に実行されますが、2番目のスクリプトはフレーズのみを生成し、The variable is出力ファイルは生成されません。タイムアウトしたようですが、どんなアイデアでもいただければ幸いです。

ベストアンサー1

に記載されているようにman sudoers:

   Command environment
     Since environment variables can influence program behavior, sudoers pro‐
     vides a means to restrict which variables from the user's environment are
     inherited by the command to be run.  There are two distinct ways sudoers
     can deal with environment variables.

     By default, the env_reset option is enabled.  This causes commands to be
     executed with a new, minimal environment.

sudo-Eまたは、オプションを使用して呼び出して、呼び出し環境を維持するように要求することもできます--preserve-env

sudo -E timeout 15 2.sh

(Sudoersポリシーで禁止されている場合、成功しない可能性があります。)

おすすめ記事