실수로 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