zsh配列があるとしましょうARRAY=(a b c)
。
my_
配列の各要素の前に追加したいと思います(my_a my_b my_c)
。
どうすればいいですか?
答え1
複数のオプション:
その目的のために設計された演算子を使用してください('s^
に似ています)。rc
^
ARRAY=(my_$^ARRAY)
または、この拡張子をデフォルトの拡張子に設定します(rc
またはスタイルfish
)。
set -o rcexpandparam
ARRAY=(my_$ARRAY)
またはksh93メソッド1、テーマアンカーの開始として${param/pattern/replacement}
withを使用します。#
ARRAY=(${ARRAY/#/my_})
またはcsh方式ですが、histsubstpattern
パターンに応じて交換できるバリエーションがあります。
set -o histsubstpattern
ARRAY=(${ARRAY:s/#/my_})
または以下を使用してくださいprintf
。
printf -v ARRAY my_%s "$ARRAY[@]"
ARRAY=("${ARRAY[@]/#/my_}")
1技術的にksh93(または最終的にコピーされたbashまたはmksh)はそのままにしておく$ARRAY
必要${ARRAY[0]}
があります。