私は、カスタム環境変数を解析するスクリプトを実行するUnix bash関数を持っています。関連する変数をbashにエクスポートするのを避け、代わりに実行コマンドの一部としてスクリプトに対してのみ設定します。ローカルbash関数変数のスクリプトの環境変数を設定する
変数にコマンドを直接設定すると(例:VARNAME=VARVAL script_name
)、正常に動作します。しかし、異なる条件に基づいて複数の変数を設定したいので、ローカル変数変数を使用して環境変数の設定を保存し、この変数をスクリプト実行コマンドで使用したいと考えています。 私は最終的に例えばVARNAME=VAR
に設定されているローカル変数 "vars"を持っていますが、私のbash関数から${vars} script_name
を実行しようとすると、"コマンドが見つかりません"というエラーメッセージが表示されます。$ vars変数割り当てのエラー - つまり、$ varsの内容は、環境変数の代入ではなくコマンドとして解釈されます。
私はコマンド構文のさまざまなバリエーションを試しましたが、これまで役に立たなかったのです。 現在、私はスクリプトを呼び出す前に関数内の関連する変数をエクスポートしてから以前の値に設定を解除する必要がありますが、これは実際に私が望んでいた解決策ではありません。
ご協力いただければ幸いです。
おかげで、あなたはeval
を使用しようとすることができ式としての代わりに、コマンドとして、あなたの変数の内容を評価するために シャロン
迅速な返信ありがとうございます。出来た :-)! (私は実際にある時点でevalを試してみましたが、間違った構文を誤って使用していました) – Sharon
['eval' is evil](http://mywiki.wooledge.org/BashFAQ/048) – l0b0