문자열 리터럴 뒤의 괄호 쌍의 의미는 무엇입니까?

문자열 리터럴 뒤의 괄호 쌍의 의미는 무엇입니까?

실수로 Bash 터미널에 다음 명령을 입력했습니다.

exit()

Bash는 문자열 리터럴을 입력할 때까지 다음 줄을 계속 읽고 있으며 Bash는 "-bash: 예상치 못한 토큰 근처의 구문 오류"라는 오류를 표시합니다.

그래서 다음과 같은 다른 유사한 입력을 테스트했습니다.

foobar ()

Bash는 비슷한 출력을 제공합니다. 내가 얻은 결과는 다음과 같습니다.

~ $ foo ()
> bar
-bash: syntax error near unexpected token `bar'

누군가 이유를 설명할 수 있습니까? 나는 괄호가 배열이나 하위 쉘을 만드는 데 사용된다는 것만 알고 있습니다. 나는 이것이 실제로 무엇을 하는지 전혀 모른다.

답변1

이것은 쉘 함수를 정의하는 구문입니다. 보다쉘 기능부분배쉬 매뉴얼. 그것은 다음으로 시작됩니다:

셸 함수는 그룹의 단일 이름을 사용하여 나중에 실행할 수 있도록 명령을 그룹화하는 방법입니다. 이는 "일반" 명령처럼 실행됩니다. 쉘 함수의 이름을 단순 명령 이름으로 사용하는 경우에는 해당 함수 이름과 연관된 명령 목록이 실행됩니다. 셸 기능은 현재 셸의 컨텍스트에서 실행되며 이를 해석하기 위한 새 프로세스가 생성되지 않습니다.

함수를 선언하려면 다음 구문을 사용하십시오.

name () compound-command [ redirections ]

복합 명령을 입력해야 합니다. 예를 들어:

$ foo()
> {
> echo 'you said foo'
> }
$ foo
you said foo

관련 정보