Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
このbash3マップのlouistoの値を変更したいと思います。green
louis
green
ARRAY=( "nicolas:red" "louis:blue" )
で上書きしようとしましARRAY+=("louis:green")たが、機能しません。キーが重複している3要素の配列になってしまいます。
ARRAY+=("louis:green")
注:bash4の最新のマップは使用できないため、bash3連想配列を使用する必要があります。
これは、通常の(整数)インデックス付き配列です。置き換える正しいインデックスを見つけるには、それを繰り返す必要があります。(これは、インデックスが既存の配列の終わりを超えているため、新しい要素を追加する場合にも機能します。)
for ((i=0; i<${#ARRAY[*]}; i++)); do [[ ${ARRAY[i]} = louis:* ]] && break done ARRAY[i]=louis:green