IFS 변경 사항이 아직 적용되지 않았습니다.

IFS 변경 사항이 아직 적용되지 않았습니다.

나는 변화를 시도했다 IFS(내부 필드 구분 기호) 파일 처리를 위해 문자를 쉼표로 변환했지만 놀랍게도 IFS변경되지 않았습니다.

명령 및 출력 순서는 다음과 같습니다.

mtk4@mtk-laptop:~$ echo .$IFS.
. .                                    # A space
mtk4@mtk-laptop:~$ IFS=","             # No error was thrown, no message
mtk4@mtk-laptop:~$ echo .$IFS.
. .                                    # Again echo'd it, but no change

말해 보세요. 여기서 무슨 문제가 있나요?

답변1

$variableIFS는 a가 따옴표 없이 확장될 때 구분 기호로 사용되기도 합니다. 즉, 변경했지만 두 점 사이의 구분 기호로 처리됩니다. 또한 echo명령은 $IFS가 무엇인지 알지 못하며, 알더라도 출력 매개변수 사이에 넣지 않으므로 공백이 있습니다. 노력하다echo ".$IFS."

답변2

형식 지정자와 함께 내장된 명령을 사용하여 변수 값을 확인할 수 있습니다 bash(참고자료 참조).printf%qIFShelp printf

printf '%q\n' "$IFS"    # $' \t\n'

# alternative, as already suggested by jw013
printf '%s' "$IFS" | od -A n -t x1 | xargs     # 20 09 0a

관련 정보