그룹화와 관련하여 중괄호의 의미를 이해하고 있는지 잘 모르겠습니다. 일반() 사용에서 볼 수 있는 유일한 차이점은 {}가 하위 쉘이 아닌 현재 쉘에서 실행된다는 것입니다. 하지만 테스트한 결과 일반()과 달리 {} 내에서 데이터 형식을 지정하는 방법이 있는 것 같습니다. 예를 들어 다음을 테스트했습니다.
$ {who}
bash: {who}: command not found
[john@pc ~]$
[john@pc ~]$ {who;}
bash: syntax error near unexpected token `}'
[john@pc ~]$ {who ;}
bash: syntax error near unexpected token `}'
[john@pc ~]$ { who ;}
john tty1 2022-11-30 14:51
분명히 {}를 사용하는 데는 몇 가지 구조가 있지만 온라인이나 책에서 이에 대해 설명하는 리소스를 찾을 수 없습니다. 누구든지 내가 이것을 이해하도록 도와 줄 수 있습니까?
답변1
이 { }
문법의 이름은그룹표현하다.
그것은 다르다서브쉘 ( )
새 쉘을 생성하십시오.
이 구문에는 and 주위에 공백이 필요하며 다음 으로 끝나야 합니다 {
.}
;
대기줄다음과 같은 표현:
{ grep user /etc/passwd | awk '1'; }
여러 줄 표현식에는 필요하지 않습니다.
{
grep user /etc/passwd |
awk '1'
}
이 구문은 여러 명령을 단일 스트림으로 결합하는 유용한 방법입니다.
{ cmd1; cmd2; cmd3; } | grep ...
추천 링크:
- http://mywiki.wooledge.org/BashGuide/CompoundCommands#Command_grouping
- https://www.gnu.org/software/bash/manual/bash.html#Command-Grouping
그러지 않기 위해서버팀대 확장좋다{1..9}