%EC%99%80%20%7B%7D%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
여기서는 두 번째 에코만 grep에 공급됩니다.
$ echo a1; echo a2 | grep -o a
a1
a
여기서는 두 에코 모두 그렇게 합니다.
$ { echo a1; echo a2 ;} | grep -o a
a
a
여기에서도 마찬가지입니다.
$ (echo a1; echo a2 )| grep -o a
a
a
그렇다면 ()와 {}의 차이점은 무엇인가요?
답변1
둥근 괄호는 서브쉘을 소개합니다.
$ a=1; { a=2 ; echo $a ; } ; echo $a
2
2
$ a=1; ( a=2 ; echo $a ; ) ; echo $a
2
1
$$
bash를 다시 초기화할 필요가 없기 때문에 서브셸에서도 동일하게 유지됩니다 . $BASHPID
하지만 변화는 있습니다.