erro de sintaxe próximo ao token inesperado `

erro de sintaxe próximo ao token inesperado `

Estou escrevendo um script para ler a saída de um comando para as variáveis ​​a e b. Este é o roteiro

#!/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"

e obtendo o erro de sintaxe como:

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

Mas quando estou digitando o mesmo comando no console, ele funciona para mim sem nenhum 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

Qualquer ajuda sobre isso é muito apreciada.

Responder1

sh(que na maioria dos sistemas (derivados do Debian) está vinculado a dash) não permitesubstituição de processo. Tente invocar por bash script.sh. A mesma chamada de ./script.sh é executada com sha-banga qual é/bin/bashem seu roteiro.

Responder2

Eu estava tentando invocar o script como sh file.sh e estava recebendo o erro. Mas quando invoquei o mesmo script que ./file.sh e bash file.sh ele está funcionando e dando o resultado desejado.

informação relacionada