"bash:予期しないトークン '('"の近くに構文エラーが発生しました。プロセス置換エラー

新しいクリーンなbashインスタンスで予想される結果を取得します。

$ printf "a\td\n" | cat -vE
a   d$
$
$ file <(printf "a\td\n" | cat -vE)
/dev/fd/63: symbolic link to pipe:[6664004]

しかし、現在、以下を返すbashインスタンスがあります。

$ printf "a\td\n" | cat -vE
a   d$
$
$ file <(printf "a\td\n" | cat -vE)
bash: syntax error near unexpected token `('
$
$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
printf is /bin/printf
$
$ type -a file
file is /usr/bin/file
file is /bin/file

このエラーの原因は何ですか?

環境変数を比較すると、新しいbashインスタンスと大きな違いはありません。今回も、現在のセッションに存在する変数には特別な内容はありません。どんな手がかりがありますか? ...

ベストアンサー1

POSIXLY_CORRECT以前に実行したように、偶然に変数が設定されましたset -o posix

私は変数リストにありますが、POSIXLY_CORRECT=y一見するとこれが理由であるとは思わなかった。 (むしろコマンド名との干渉を探したいです。)

リセットを使用するとset +o posix問題が解決しました。

おすすめ記事