Bashでキー・バリューディクショナリーを使用する方法
Bashは、複雑なタスクを自動化し、データを処理するためのカスタムスクリプトを書くことを可能にする強力なツールです。bashの最も便利な機能の一つは、データを保存し操作するためのキー値辞書を使用する能力です。辞書を使用すると、データを迅速かつ簡単に保存およびアクセスできるため、コードをより効率的にします。この記事では、bashでキー値辞書を使用する方法について説明します。
キー値辞書とは何ですか
キーと値の辞書は、キーによってデータを保存およびアクセスすることを可能にするデータ構造です。各キーには対応する値があり、その値は文字列、整数、または別のデータ構造のような任意のデータ型であることができます。以下は、キーに値を追加するための構文と、bashで辞書を作成するための構文です:
declare -A <dict_name>これにより、-A フラグを使用して連想配列であることを示す空の辞書 dict_name が作成されます。辞書を作成したら、次の構文を使用してキーと値を追加できます:
<dict_name>[<key>]=<value>Bashでキーと値の辞書を使用する方法
bashでキーと値の辞書を使用することは、任意のパスコードを生成する場合や、複雑な数値計算を行う場合、あるいはコード内のどこでもアクセスできる詳細を保存する場合など、多くのシナリオで便利です。そこで、bashにおけるキーと値の辞書の使用法を示すために、理解を助けるための3つの例を示します。それがこちらの例です:
- キー値辞書を使用した算術演算の実行
- キー値辞書を使用してデータベースを作成する
キーと値の辞書を使用して算術演算を実行する方法
キーと値の辞書の別の可能な用途は、複雑なものでも簡単なものでも、いくつかの異なる算術演算を実行できることです。ここでは、辞書に保存されたデータを使用して加算と減算を行うbashコードを示します。
#!/bin/bash
Define a dictionary with key-value pairs
declare -A my_dict
my_dict["a"]=5
my_dict["b"]=10
my_dict["c"]=15
Add two values in the dictionary
sum=$(( my_dict["a"] + my_dict["b"] ))
echo "The sum of a and b is: $sum"
Subtract one value from another in the dictionary
diff=$(( my_dict["c"] - my_dict["a"] ))
echo "The difference between c and a is: $diff"
まず、my_dictという名前の連想配列または辞書がキーと値のペアで定義されます。次に、辞書から2つの値、aとbが加算され、sumという変数に格納されます。加算の結果はechoコマンドを使って出力されます。
次に、辞書の値aが別の値cから引かれます。その引き算の結果はdiffという変数に保存され、echoコマンドを使用して結果が出力されます。全体として、このスクリプトはBashでデータを保存し操作するための辞書の使い方を示しています。
キーバリューディクショナリを使ってデータベースを作成する方法
キーと値の辞書の最も人気のある用途の1つは、データベースを作成することです。そのデータは、後でbashスクリプトで使用できるものであれば何でもできます。ここでは、会社のデータを取得する例を示しており、さらにスクリプトは辞書内の既存のキーを更新する方法も示しています。
#!/bin/bash
declare -A company=(
[name]="Acme Corporation"
[location]="New York City, NY"
[industry]="Manufacturing"
[size]="Large"
[founded]="1920"
)
print all the details
printf "Company details:\n"
for key in "${!company[@]}"; do
printf "%s: %s\n" "$key" "${company[$key]}"
done
modify the value of the "location" key
company["location"]="Los Angeles, CA"
print the updated details
printf "\nUpdated company details:\n"
for key in "${!company[@]}"; do
printf "%s: %s\n" "$key" "${company[$key]}"
doneこのbashスクリプトは、会社の名前、場所、業界、規模、設立年などの情報を含むcompanyと呼ばれる辞書を定義します。printf関数は、会社の詳細を読みやすい形式で表示するために使用されます。forループは、company辞書のキーを反復処理し、各キーに対して、printf関数がキーとそれに対応する値を引数として呼び出されます。その後、locationキーの値を「ロサンゼルス、CA」に変更することでcompany辞書が更新されます。最後に、更新された会社の詳細は、別のforループとprintf関数を使用して以前と同じ形式で表示されます。
結論
連想配列を使用することで、意味のある名前を使用してデータを保存および取得できるため、bashスクリプトをより効率的かつ保守的にすることができます。この文章では、2つの例を用いてBashでのキーと値の辞書の使い方を示します。

