我有一個bash,如下所示,我希望在回顯中使用YYY_XXX_SK_REGISTER_CNTL的值。
#! /bin/bash
TRADE_TYPE=$1
YYY_XXX_SK_REGISTER_CNTL=YYY_XXX_SK_REGISTER_template.ctl
echo $TRADE_TYPE"_CTNL"
調用如下基:我想你期待像下面的代碼YYY_XXX_SK_REGISTER_template.ctl
我有一個bash,如下所示,我希望在回顯中使用YYY_XXX_SK_REGISTER_CNTL的值。
#! /bin/bash
TRADE_TYPE=$1
YYY_XXX_SK_REGISTER_CNTL=YYY_XXX_SK_REGISTER_template.ctl
echo $TRADE_TYPE"_CTNL"
調用如下基:我想你期待像下面的代碼YYY_XXX_SK_REGISTER_template.ctl
:
#!/bin/bash
TRADE_TYPE=$1
export TRADE_TYPE
variable="$TRADE_TYPE"_template.ctl
echo $variable
請查看[editing-help](http://stackoverflow.com/editing-help)。 – Cyrus
首先,你需要擺脫錯字的,CNTL VS 的cTnI。 這個腳本,你想要做
#!/bin/bash
TRADE_TYPE=$1
YYY_XXX_SK_REGISTER_CNTL=YYY_XXX_SK_REGISTER_template.ctl
eval echo "\$${TRADE_TYPE}_CNTL"
什麼有可能比訴諸EVAL一個更好的解決方案。但是你必須解釋你的總體目標是什麼。
使用間接變量引用:
#! /bin/bash
TRADE_TYPE="${1}_CNTL"
YYY_XXX_SK_REGISTER_CNTL=YYY_XXX_SK_REGISTER_template.ctl
echo "${!TRADE_TYPE}"
當在命令行中輸入以下內容:
./test.sh YYY_XXX_SK_REGISTER
你的結果將是:
YYY_XXX_SK_REGISTER_template.ctl
請解釋更好 – Troncador
結果期待在回聲:YYY_XXX_SK_REGISTER_template.ctl,但目前得到:YYY_XXX_SK_REGISTER_CNTL。如何獲得慾望的結果? – sabya
你沒有使用你的變量:YYY_XXX_SK_REGISTER_CNTL。 – Troncador