"IGNOREEOF=n" 변수와 "ignoreeof=n" 단어 사용법의 차이점은 무엇입니까?

"IGNOREEOF=n" 변수와 "ignoreeof=n" 단어 사용법의 차이점은 무엇입니까?

ignoreeof내장 함수를 사용했을 때 set"IGNOREEOF=n" 변수와 "ignoreeof=n" 단어를 제약 조건으로 사용할 수 있다는 것을 깨달았습니다. 예를 들어;

└─$ bash
└─$ set -o ignoreeof
└─$ IGNOREEOF=2
└─$
Use "exit" to leave the shell.
└─$
Use "exit" to leave the shell.
└─$
exit
└─$ bash
└─$ set -o ignoreeof
└─$ ignoreeof=2
└─$
Use "exit" to leave the shell.
└─$
Use "exit" to leave the shell.
└─$
exit

알아요"EOF 무시=n"다양한데 그게 뭔지 모르겠어요"무시=n".감시당하고 set수출 env됐어요"EOF 무시"하지만"소홀히 하다" 아니요.

답변1

매뉴얼 페이지에는 set -o ignoreeof다음과 같이 언급되어 있습니다.

효과는 쉘 명령 'IGNOREEOF=10'을 실행하는 것과 같습니다.

실제로 이것은 문자 그대로입니다.

$ echo $IGNOREEOF

$ set -o ignoreeof
$ echo $IGNOREEOF
10

반대의 set +o ignoreeof작업을 수행 IGNOREEOF하고 설정을 해제하고 설정 시 SHELLOPTS포함된 것처럼 보입니다 (할당 또는 설정 여부에 관계 없음 ). (Bash 4.4로 테스트했습니다.)ignoreeofIGNOREEOFset -o ignoreeof

소문자 변수에는 ignoreeof특별한 효과가 없을 수 있습니다.

이상하지만 소문자 변수는 ignoreeof대문자 변수와 문서화되지 않은 동일한 것으로 보입니다. 따라서 두 가지 중 하나를 변경하면 필요한 EOF 수가 변경되는데, 이는 두 번째 예에 있는 것 같습니다.

유지관리자에 따르면, 소문자

이전 버전과의 호환성을 위해서만 존재하며 더 이상 사용되지 않으며 수년 동안 사용되었습니다.

그러나 일반적으로 set -o플래그와 변수는 다릅니다.

관련 정보