예기치 않은 표시 '<' 근처에 구문 오류가 있습니다.

예기치 않은 표시 '<' 근처에 구문 오류가 있습니다.

변수 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를 사용하여 동일한 스크립트를 호출하면 작동하고 원하는 결과를 제공합니다.

관련 정보