결과는 bash: ls -al /: No such file or directory
과 같습니다.
셸이 예상 된 결과를 반환 할 수 없습니다.
IFS를 $' \n'
(공백 추가)으로 변경하면 문제가되지 않습니다.
IFS에 대한 지식이 많지 않으므로 설명해 줄 수 있습니까? 첫 번째 경우에
결과는 bash: ls -al /: No such file or directory
과 같습니다.
셸이 예상 된 결과를 반환 할 수 없습니다.
IFS를 $' \n'
(공백 추가)으로 변경하면 문제가되지 않습니다.
IFS에 대한 지식이 많지 않으므로 설명해 줄 수 있습니까? 첫 번째 경우에
:
show="ls -al /"
IFS=$'\n'
$show
IFS 단어를 유도하지 마십시오 변수에 거기에 공간과 공간을 가지고 있지 않기 때문에 전체 문자열 ls -al /
는, 쉘이 명령 이름으로 취급되고있다 파편. 단어 분할을 완전히 억제하는 "$ show"명령을 작성하는 것만큼이나 좋습니다.
두 번째 경우에는 공백이 IFS의 일부이므로 단어 분리가 발생합니다.
은 참조 :
내가 파일을 각 라인을 읽을 IFS 변경 'a : 1 \ n b : 2' 나는 bash로 그것을 읽는 좋은 방법을 모른다. 좋은 생각이 있니? – daixiang0
이 http://mywiki.wooledge.org/WordSplitting –