Cómo diferenciar la redirección de dos comandos en un script de shell

2

en la línea de comando puedo diferenciar la salida de dos comandos con

$ diff <(cmd1) <(cmd2)

pero si pongo esto en un script de shell

$ sh do_two_comands_diff.sh

No funciona

$ diff <(ls) <(ls -a)
0a1,2
> .
> ..

$ cat > test_diff.sh
diff <(ls) <(ls -a)
^D

$ sh test_diff.sh
test_diff.sh:1: test_diff.sh: Syntax error: "(" unexpected

Traté de usar $ () en su lugar () sin éxito. Sé que dentro del shell a veces las cosas deben hacerse de una manera diferente que en la consola, pero aquí no tengo ni idea. ¿Podría alguien ser tan amable de señalarme los enlaces correctos para aprender cómo hacer esto correctamente dentro de un shell y por qué sucede esto?

pags.

Pablo Marin-Garcia
fuente

Respuestas:

5

Asegúrese de utilizar el mismo intérprete en su secuencia de comandos que está utilizando en la línea de comando al anteponer

#!/bin/bash
FarDarkMist
fuente
¡tonto de mí! Lo estaba llamando con sh y olvidé que <() es una fiesta !! gracias
Pablo Marin-Garcia
eras tan rápido que debes esperar 11 minutos para que tu merecida 'pregunta contestada' marque ;-)
Pablo Marin-Garcia