Greg의 위키에 따르면IFS
변수 사용:
read
명령 에서 여러 변수 이름 인수가 지정된 경우IFS
각 변수가 단일 입력 필드를 갖도록 입력 행을 분할하는 데 사용됩니다.- 따옴표가 없는 확장에 대해 WordSplitting을 수행할 때
IFS
확장 값을 여러 단어로 분할하는 데 사용됩니다. - 수행
"$*"
하거나"${array[*]}"
확장할 때 첫 번째 문자는IFS
요소 사이에 배치되어 최종 출력 문자열을 구성합니다. - 실행되면 의
"${!prefix*}"
첫 번째 문자가IFS
변수 이름 사이에 배치되어 출력 문자열을 형성합니다. IFS
complete -W
아래에서 사용하도록 프로그래밍 가능하여 완성됨
IFS
그래서 내 질문은, 왜 변수 할당에서 역할을 해야 합니까 ? 다음 내용에 따르면 bash는 a:b:c:d
오른쪽 문자열에 토큰화( )를 적용합니다.
$ IFS=: s=a:b:c:d
$ echo $s
a b c d
답변1
그러나 실제로는 그렇지 않습니다. 당신은해야합니다올바른 인용. IFS 값을 기준으로 따옴표가 없는 확장에 토큰화를 적용합니다. 문제는 echo
작업이 아니라 명령입니다.
$ ( IFS=: s=a:b:c:d typeset -p s )
declare -- s="a:b:c:d"