给定以下 3 个脚本:
printf 'a\nb\nc\n' > file && { head -n 1; cat; } < file
printf 'a\nb\nc\n' | { head -n 1; cat; }
{ head -n 1; cat; } < <(printf 'a\nb\nc\n')
我期望每个的输出是:
a
b
c
Run Code Online (Sandbox Code Playgroud)
但对于其中一些系统,在某些系统上,情况并非如此。例如,在 cygwin 上:
$ printf 'a\nb\nc\n' > file && { head -n 1; cat; } < file
a
b
c
Run Code Online (Sandbox Code Playgroud)
$ printf 'a\nb\nc\n' | { head -n 1; cat; }
a
Run Code Online (Sandbox Code Playgroud)
$ { head -n 1; cat; } < <(printf 'a\nb\nc\n')
a …
Run Code Online (Sandbox Code Playgroud)