現在、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ポリシーで禁止されている場合、成功しない可能性があります。)