내 스크립트에 배열이 선언되어 있습니다.
NAME[0]=Deepak
NAME[1]=Renuka
NAME[2]=Joe
NAME[3]=Alex
NAME[4]=Amir
echo "All Index: ${NAME[*]}"
echo "All Index: ${NAME[@]}"
위에 표시된 전체 배열을 인쇄하는 방법에는 두 가지가 있습니다. 누군가 이 방법들 사이의 차이점을 쓸 수 있나요?
답변1
echo "All Index: ${NAME[*]}"
동일한echo "All Index: ${NAME[0]} ${NAME[1]} ${NAME[2]} ${NAME[3]} ${NAME[4]}"
echo "All Index: ${NAME[@]}"
등호 변수echo "All Index: ${NAME[0]}" "${NAME[1]}" "${NAME[2]}" "${NAME[3]}" "${NAME[4]}"
의 첫 번째 문자IFS
는 공백입니다(기본값).
실행 결과를 볼 수 있습니다copy.sh.
IFS
변수의 기본값은 입니다 $' \t\n'
.
${array[*]}
그리고 $*
변수의 첫 번째 문자로 분할된 문자열을 출력합니다 IFS
. 분할할 문자를 변경할 수도 있습니다.
NAME[0]=Deepak
NAME[1]=Renuka
NAME[2]=Joe
NAME[3]=Alex
NAME[4]=Amir
IFS=:
echo "All Index: ${NAME[*]}"
# Output: `All Index: Deepak:Renuka:Joe:Alex:Amir`
IFS=
echo "All Index: ${NAME[*]}"
# Output: `All Index: DeepakRenukaJoeAlexAmir`
IFS=$', \t\n'
echo "All Index: ${NAME[*]}"
# Output: `All Index: Deepak,Renuka,Joe,Alex,Amir`