2011-08-09 154 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

你將需要eval東西:

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

謝謝glenn它的工作。 – user840963

0

嘗試使用命令替換:

$(command ...)_PLAN 

讓我們假設程序make_prefix在您的路徑。然後:

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

嗨福Bah,我不明白你能不能詳細說說。 – user840963

+0

嗨Foo,這沒有解決它給錯誤信息。謝謝。 – user840963

0

它不清楚你真正想要什麼有發生,但我可以猜測,你可能想在你的情況類似

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

這將需要變量PREFIX的值(AI ?),並附加_PLAN,並使用它作爲一個變量的名字來獲取

+0

嗨克里斯,謝謝回答我收到以下錯誤>回聲$ {PREFIX} AI >回聲$ {PREFIX} _PLAN AI_PLAN >回聲$ {$ {PREFIX}} _PLAN -ksh:語法錯誤: '!意外 – user840963