여기서는 두 번째 에코만 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
하지만 변화는 있습니다.