Bashバージョン4.2.47(1)-releaseで、HERE-dcoumentからのフォーマットされたテキストを次のように分類しようとすると:
cat <(fmt --width=10 <<FOOBAR
(I want the surrounding parentheses to be part of the HERE-document)
(Even the preceding unbalanced parenthesis should be part of it.
FOOBAR
) # I want this paranthesis to end the process substitution.
次のエラーが表示されます。
bash: bad substitution: no closing `)' in <(fmt --width=10 <<FOOBAR
(I want the surrounding parentheses to be part of the HERE-document)
(Even the preceding unbalanced parenthesis should be part of it.
FOOBAR
)
また、ここでドキュメントを引用したくない、つまりwriteし<'FOOBAR'
たくないのは、その中に変数を代入したいからです。
私はそれが不自然な例であることを認めなければなりません。私の実際のニーズはそれよりも複雑です。
—
ティムフリスケ14年
交換
—
ラファエルアーレンス14年
(Even
する"(Even"
とうまくいくのは興味深いことです。についても同じです\(Even
。解析バグのように見えます。Bashは、ここでのドキュメントを読んでいるコンテキストと、両方のコンテキストが互いに矛盾している場合に、中括弧を探しているコンテキストにまだあります。
これは、
—
chepner
bash
4.3で修正されました。
cat
電話が必要ですか?呼び出しに残してみませんfmt
か?