O aplicativo em si não está em questão, só estou me perguntando como o Bash não está se comportando como eu esperava, como se, de alguma forma, qualquer comportamento que esse aplicativo tenha, estivesse vazando de uma forma que não consigo explicar o porquê.
Para contextualizar, o aplicativo é patsh , ele é destinado a coisas do Nix (como no gerenciador de pacotes), mas essencialmente ele pega um arquivo de entrada, e o reescreve com base em algumas regras e então o salva no arquivo de saída (que aqui é /dev/stdout
), neste contexto, ele não reescreve nada, então é essencialmente cp
. Aqui está a configuração:
$ cat <<EOF > foo
1
2
3
4
5
6
EOF
$ cat <<EOF > bar
a
b
c
EOF
$ { patsh -f bar /dev/stdout; } >> foo # Using braces to avoid any ambiguity...
$ cat foo # It replaced instead of appending
a
b
c
4
5
6
$ cat <(patsh -f bar /dev/stdout) >> foo # Does what I expected
$ cat foo
a
b
c
4
5
6
a
b
c
Alguém pode explicar esse comportamento?