명령 대체의 추가 대괄호

명령 대체의 추가 대괄호

일부 작성자는 명령 대체에 추가 괄호를 추가한 것을 확인했습니다. 다음 스니펫을 고려하세요.

$ var1=$(uname -r)
$ echo $var1
5.3.0-26-generic

다음과 같이 쓰면 어떤 차이가 있나요?

$ var1=($(uname -r))
$ echo $var1
5.3.0-26-generic

더 많은 맥락을 설명하기 위해 다음을 확인했습니다.여기 , 그가 썼을 때:

COMPREPLY=($(compgen -f -X "$xpat" -- "${word}"))

답변1

추가 괄호의 의미는 초기화한다는 것입니다.정렬배쉬에서. uname -r단일 단어로 구성된 출력을 처리할 때는 큰 차이가 없지만COMPREPLY이 점은 매우 중요합니다.

직접 확인할 수 있습니다.

var1=($(uname -a))
echo $var1
echo ${var1[@]}

관련 정보