我需要閱讀的shell腳本變量和使用變量來執行某些操作。對於例如我從配置讀取變量的市場和使用這個變量來找出使用另一個變量redis_host_silver_$j
閱讀UNIX Shell腳本變量和執行操作
命令的值: -
for j in `echo $markets | awk -F"," '{ for(i=1; i<=NF; ++i) print $i }'`;
do
echo $(redis_host_silver_$j);
done
誰能幫我在這?
我需要閱讀的shell腳本變量和使用變量來執行某些操作。對於例如我從配置讀取變量的市場和使用這個變量來找出使用另一個變量redis_host_silver_$j
閱讀UNIX Shell腳本變量和執行操作
命令的值: -
for j in `echo $markets | awk -F"," '{ for(i=1; i<=NF; ++i) print $i }'`;
do
echo $(redis_host_silver_$j);
done
誰能幫我在這?
的錯誤是在echo $(redis_host_silver_$j);
一部分。
的$()
語法在bash擴展裏面有什麼作爲命令所以你實際上是試圖執行redis_host_silver_$j
嘗試:
for j in `echo $markets | awk -F"," '{ for(i=1; i<=NF; ++i) print $i }'`;
do
echo "redis_host_silver_$j";
done
如果redis_host_silver_...
是一個變量的名字,你想要的值然後做到這一點:
for j in `echo $markets | awk -F"," '{ for(i=1; i<=NF; ++i) print $i }'`;
do
VAR=redis_host_silver_$j; echo ${!VAR};
done
注意花括號
我個人會使用一個for循環來直接讀這可能會或可能不會有空格在其過程中替換的數據引導了。 雖然間接調用可能會起作用,但我會說你的變量類型是錯誤的,而第二個變量redis_host_silver應該實際上是一個包含文件中項目作爲索引的數組。
因此,也許是這樣的:
IFS="," read -ra items <<<"$markets"
for item in "${items[@]}"
do
echo "${redis_host_silver[$item]}"
done
如果值從「市場」數字,然後在「項目」中調用數組變量不需要像下面的「$」
即時得到錯誤: - 對於'echo $ markets |中的j + AWK -F 「」 '\' '{對於(I = 1; I <= NF; ++ⅰ)打印$ I}' \ '''」 ++ redis_host_silver_uk test.sh:線61:redis_host_silver_uk:找不到命令 –
嘗試引用在你的回聲,像'回聲「redis_host_silver_ $ J」;' – Jack
此外,如果你有權限這樣做,這將有助於編輯原始問題補充錯誤信息 – Jack