error de sintaxis cerca del token inesperado `

error de sintaxis cerca del token inesperado `

Estoy escribiendo un script para leer el resultado de un comando para las variables a y b. Este es el guión

#!/bin/bash

read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)

echo "The value of a is $a"
echo "The value of b is $b"

y obteniendo el error de sintaxis como:

line 3: syntax error near unexpected token `<'
line 3: `read a b < <(awk /Application Server/ && !seen[$7]++{echo "%s ", $7} /tmp/ServerState)'

Pero cuando escribo el mismo comando en la consola, funciona sin ningún problema.

app@user:/tmp> read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)
app@user:/tmp> echo $a
FAILED
app@user:/tmp> echo $b
STARTED

Cualquier ayuda con esto es realmente apreciada.

Respuesta1

sh(que en la mayoría de los sistemas (derivados de Debian) está vinculado a dash) no permitesustitución de procesos. Intente invocar mediante bash script.sh. Se ejecuta la misma llamada mediante ./script.sh con sha-bangla cual es/bin/bashen tu guión.

Respuesta2

Estaba intentando invocar el script como sh file.sh y recibía el error. Pero cuando invoqué el mismo script que ./file.sh y bash file.sh, funciona y da el resultado deseado.

información relacionada