[解決済み] bashで2次元配列を宣言する方法
2023-03-18 02:09:26
質問
bashで2次元配列を宣言し、0に初期化する方法を教えてください。
C言語ではこのようになります。
int a[4][5] = {0};
そして、要素に値を割り当てるにはどうすればよいのでしょうか?C言語のように
a[2][3] = 3;
どのように解決するのですか?
例えばハッシュを使えばシミュレーションができますが、先頭のゼロや他の多くのことに気を配る必要があります。次のデモは動作しますが、最適解からは程遠いものです。
#!/bin/bash
declare -A matrix
num_rows=4
num_columns=5
for ((i=1;i<=num_rows;i++)) do
for ((j=1;j<=num_columns;j++)) do
matrix[$i,$j]=$RANDOM
done
done
f1="%$((${#num_rows}+1))s"
f2=" %9s"
printf "$f1" ''
for ((i=1;i<=num_rows;i++)) do
printf "$f2" $i
done
echo
for ((j=1;j<=num_columns;j++)) do
printf "$f1" $j
for ((i=1;i<=num_rows;i++)) do
printf "$f2" ${matrix[$i,$j]}
done
echo
done
上記の例では、4x5の行列を乱数で作成し、それを転置して表示しています。
1 2 3 4
1 18006 31193 16110 23297
2 26229 19869 1140 19837
3 8192 2181 25512 2318
4 3269 25516 18701 7977
5 31775 17358 4468 30345
原理はこうです。のような文字列をインデックスとする連想配列を1つ作成することです。
3,4
. 利点は
-
のように、任意の次元の配列に使用することができます;)。
30,40,2
3次元の場合 -
は、配列のような "C"に近い構文です。
${matrix[2,3]}
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] パラメータを取るBashのエイリアスを作る?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
LinuxでPingを無効にする、または許可する設定方法
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Kali Linuxのマウスを左利き用に設定する方法は?Linuxマウス左利き操作選択方法
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
Deepin20システムのフォントを設定するには?Deepin端末のフォントサイズを設定する方法
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] 標準エラー出力を /dev/null にリダイレクトする。
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].