Por favor, observe:
mark@L-R910LPKW:~$ diff <(echo a) <<<b
diff: missing operand after '/dev/fd/63'
diff: Try 'diff --help' for more information.
mark@L-R910LPKW:~$
Eu sei que <(...)
funciona bem:
mark@L-R910LPKW:~$ diff <(echo a) <(echo b)
1c1
< a
---
> b
mark@L-R910LPKW:~$
Eu também sei que <<<
funciona bem em geral:
mark@L-R910LPKW:~$ cat <<<a
a
mark@L-R910LPKW:~$
Então, qual é a maneira certa de chamá-lo diff
?
O
diff
comando espera argumentos de nome de arquivo<<<
, enquanto a string here grava na entrada padrão. No entanto,man diff
diz-nosEntão
O mesmo se aplica a um documento aqui :
Em sistemas que possuem
/dev/fd/x
dispositivos, você pode fazer:<<
usando o operador de redirecionamento here-document do shell Bourne .Usando
<<<
o operador de redirecionamento here-string do zsh.No zsh, você também pode fazer:
Você pode combinar
<()
comcat <<<
:A resposta do Steeldriver funciona bem se você precisar usar apenas
<<<
um argumento, mas se precisar de ambos, isso funcionará:Mas não está claro por que você precisaria de uma string here para isso. Há pouca diferença entre
<(cat <<<a)
e<(echo a)