コマンドの出力を連想配列に入れる必要があります。
たとえば、
dig mx +short google.com
次を返します。
20 alt1.aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
30 alt2.aspmx.l.google.com.
優先順位(10、20、...)をキーに、レコード(aspmx.l.google.com.)を値として使用して連想配列を作成するには?
ベストアンサー1
そのデータを bash 連想配列として読み込む 1 つの方法は次のとおりです。
パスワード:
#!/usr/bin/env bash
declare -A hosts
while IFS=" " read -r priority host ; do
hosts["$priority"]="$host"
done < <(dig mx +short google.com)
for priority in "${!hosts[@]}" ; do
echo "$priority -> ${hosts[$priority]}"
done
出力:
20 -> alt1.aspmx.l.google.com.
10 -> aspmx.l.google.com.
50 -> alt4.aspmx.l.google.com.
40 -> alt3.aspmx.l.google.com.
30 -> alt2.aspmx.l.google.com.