синтаксическая ошибка около неожиданного токена `

синтаксическая ошибка около неожиданного токена `

Я пишу скрипт для чтения вывода команды в переменные a и b. Это скрипт

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

и получаем синтаксическую ошибку:

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

Но когда я ввожу ту же команду в консоли, она работает без каких-либо проблем.

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

Любая помощь по этому вопросу будет очень ценна.

решение1

sh(который в большинстве (производных от Debian) систем связан с dash) не позволяетзамена процесса. Попробуйте вызвать с помощью bash script.sh. Тот же вызов с помощью ./script.sh выполняется с помощью sha-bangкоторого/bin/bashв вашем сценарии.

решение2

Я пытался вызвать скрипт как sh file.sh и получал ошибку. Но когда я вызывал тот же скрипт как ./file.sh и bash file.sh, он работал и давал желаемый результат.

Связанный контент