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.
以下:
#!/bin/sh FOX="{ab,cd}" echo $FOX
私が期待するものを出力します({ab、cd})しかし:
#!/bin/ksh FOX="{ab,cd}" echo $FOX
コンマをスペースに変換します。どうしてこれなの?また、「\」でコンマをエスケープできないようです。
$FOXが評価されると、ブレース展開が行われます。
$FOX
ksh の man ページから:
フォームの場合{*,*}:
{*,*}
{ と , と , と , と , と } の間の文字列ごとにフィールドが作成されます。
そのため、シェルはカンマ区切りのリストを取得して展開し、たとえば for ループで使用できるようにします。
コメントでシェルターが示唆しているように、これ"$FOX"は評価されるたびに二重引用符で囲むことで修正できます。
"$FOX"