j:<delimiter>:
zshパラメータ拡張フラグの区切り文字列値として変数値を使用する方法は?
それができない場合は、zshで変数を使用して値を区切る最も効率的で簡潔な方法は何ですか?
array=(a b)
delimiter=,
printf -- "%s" ${(j:,:)array} # good: outputs: a,b
printf -- "%s" ${(j:$delimiter:)array} # bad: outputs: a$delimiterb
ベストアンサー1
p
パラメータ拡張フラグを使用します。
printf %s ${(pj:$delimiter:)array}
文書の引用(強調):
p
この引数の後に説明されているすべてのフラグの文字列引数のprintに組み込まれているのと同じエスケープシーケンスを認識します。
または、
$VAR
このオプションを使用すると、文字列パラメータは変数値が置き換えられる形式を取ることができます。 。この形式は厳密です。文字列パラメータは一般的なパラメータ拡張を受けません。