출력이 다르게 보이는 이유는 무엇입니까?

출력이 다르게 보이는 이유는 무엇입니까?

이 스크립트를 실행한 후 출력이 다음과 같이 표시되는 경우가 있습니다.

1912:!    total e
ergy              = -1090.13343774 Ry
2310:!    total e
ergy              = -1090.20757070 Ry
2709:!    total e
ergy              = -1090.24296462 Ry
3084:!    total e
ergy              = -1090.25563488 Ry
3483:!    total e
ergy              = -1090.27085564 Ry
3870:!    total e
ergy              = -1090.27693129 Ry
4245:!    total e
ergy              = -1090.28213580 Ry
4632:!    total e
ergy              = -1090.29131927 Ry

때로는 다음과 같습니다.

1912:!    total energy              = -1090.13343774 Ry
2310:!    total energy              = -1090.20757070 Ry
2709:!    total energy              = -1090.24296462 Ry
3084:!    total energy              = -1090.25563488 Ry
3483:!    total energy              = -1090.27085564 Ry
3870:!    total energy              = -1090.27693129 Ry
4245:!    total energy              = -1090.28213580 Ry

이것은 단지 버그입니까, 아니면 실수로 코드에서 뭔가를 변경한 것입니까?

암호:

cm=$1
nm=$2
case $cm in
    "out")
        declare -a  en
        ec=$(grep -n "! " hw1_out_si_wire.txt)
        IFS='\n' en=($ec)
        for i in ${en[@]}
        do
            echo "$i"
        done
        ;;
    "in") echo "It's not my problem";;
esac

답변1

IFS='\n'내부 필드 구분 기호가 두 문자( \백슬래시)와 문자 로 구성되도록 설정합니다 n. IFS=$'\n'개행 문자만 포함하도록 설정하려면 이 옵션을 사용하세요 .

관련 정보