2011-08-09 6 views
0

私は以下の文を実行する必要があるシナリオを持っています。変数を変数にネストする方法は?

air sandbox run $AI_PLAN/Sam_22.plan 

上記のコマンドの場合、AIはコマンドから取得する必要があります。

> echo $PREFIX 
AI 

私は

air sandbox run $`echo $PREFIX`_PLAN/Sam_22.plan 

以下の方法を試してみましたがエラーを返しました:File not found

dollar_prefix=$`echo $PREFIX` 
air sandbox run ${dollar_prefix}_PLAN/Sam_22.plan 

がエラーを返しました:File not found

私が上記で間違ったつもりですどこ私に知らせてください。コーディング。

答えて

1

をフェッチするために、変数の名前としてその使用:

PREFIX=AI 
AI_PLAN=some_directory 
eval directory=\$${PREFIX}_PLAN 
air sandbox run $directory/Sam_22.plan 
+0

ありがとうグレンそれは働いた。 – user840963

0

は、コマンド置換を使用してみてください:

$(command ...)_PLAN 

はプログラムmake_prefixがパスに含まれていると仮定します。その後:

> make_prefix 
AI 
> echo $(make_prefix) 
AI 
> echo $(make_prefix)_PLAN 
AI_PLAN 
+0

こんにちはフーフン、私はあなたがeloborateしてくださいすることができ明確に理解していませんでした。 – user840963

+0

こんにちは、これは、それはエラーメッセージを与えている動作しませんでした。ありがとう。 – user840963

0

かは不明あなたが実際に起こっていたいが、私はあなたがおそらくこれは、(あなたのケースでAIを変数PREFIXの値をとります

air sandbox ${${PREFIX}_PLAN}/Sam_22.plan 

ような何かをしたいことを推測することができるもの?)と_PLANを追加し、あなたがeval何かに必要になるだろう

+0

こんにちはクリス、答えのおかげで、私はエラーの下に取得していますが> $ {PREFIX} AI をエコー> $ {PREFIX} _PLAN AI_PLAN をエコー> $ {$ {PREFIX} _PLAN} -kshエコー:構文エラー: '! '予期しない – user840963

関連する問題