In Bash Version 4.2.47 (1) -Release, wenn ich versuche, formatierten Text, der aus einem HERE-Dokument stammt, wie folgt zu verketten:
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.
Ich erhalte folgenden Fehler:
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
)
Auch möchte ich das HERE-Dokument nicht zitieren, dh schreiben <'FOOBAR'
, weil ich immer noch Variablen haben möchte, die darin ersetzt werden.
(Even
mit "(Even"
es funktioniert. Es ist dasselbe für \(Even
. Sieht aus wie ein Parsing-Bug. Bash ist immer noch in einem Kontext, in dem es nach geschweiften Klammern sucht, während sich beide Kontexte beim Lesen des Dokuments widersprechen.
bash
übrigens in 4.3 behoben .
cat
Anruf wirklich ? Warum nicht beim Anrufen belassenfmt
?