私はLinux Bash / Shellを使用しており、複数の個々のデータ項目を変数に割り当てる方法を知りたいです。
たとえば、チームのリストです。各チームが求めるデータは、ホームマッチ総得点-遠征競技総得点-ホーム競技総得点-遠征競技総得点等である。
ベストアンサー1
シェルはbash
単一の汎用変数に個々の文字列を格納し、配列に文字列のリストを格納し、関連配列に他の文字列に関連付けられた文字列を格納できます。たとえば、配列の配列または関連配列の関連配列(またはそれらの組み合わせ)を保存することはできません。
あなたが言及した特定のデータについては、できる連想配列などの操作を実行します。
declare -A goals
goals["teamA"]="0:2:3:4"
goals["teamB"]="1:3:3:3"
# etc.
または
declare -A goals
goals=(
["teamA"]="0:2:3:4"
["teamB"]="1:3:3:3"
# etc.
)
次に、:
必要に応じて分離された値を解析します。
for team in "${!goals[@]}"; do
home_goals=$( cut -d : -f1 <<<"${goals[$team]}" )
away_goals=$( cut -d : -f2 <<<"${goals[$team]}" )
# etc.
# use "$team", "$home_goals", "$away_goals" etc. here
done
...しかしそうです。たくさんこれはPerlやPythonなどの言語を使用してより効率的に実行できます。する任意にネストされたデータ構造が許可されます。
たとえば、Perlでは次のようになります。
my %goals = ( "teamA" => [ 0, 2, 3, 4 ],
"teamB" => [ 1, 3, 3, 3 ],
# etc.
);