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.

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

¡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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.