私の意図は、テーブルの値を動的に取得することです.t = 1のループの最初の実行では、tableの値は "table"でなければならず、 "other table "2回目の実行では、forループを使って変数の名前を付けようとしましたが、" table "、" other table "の代わりに" 1 "、" 2 "を出力しました。しかし、table = $ TABLENAME $ 1、output "テーブル"です。 私はエラーを選ぶことができませんでした、私はシェルスクリプトには新しいです、言い訳があれば、ありがとう!bashでテーブルの値を動的に取得する
TABLENAME1="table"
TABLENAME2="other table"
NUM_TABLE=2
for ((t = 1; t <= ${NUM_TABLE}; t++)){
table=$TABLENAME$t
echo $table
}
'foobar = 1; foobaz = 2; a = foo; b = bar; c = baz; d = $ a $ b;エコー$ {!d}; d = $ a $ c; echo $ {!d} 'あなたの場合' echo $ {!table} ' –
あなたの説明をありがとうDavid、私はあなたの意見を持っています。 – nope
ところで、これは[BashFAQ#6](http://mywiki.wooledge.org/BashFAQ/006)で包括的に扱われています。最初に問題が発生するのを避ける方法について説明します(連想配列やその他の構造を代替として)。 –