이 질문에 대답하세요,내가 찾은 내용은 다음과 같습니다.
echo 1 2 | awk '{print $(expression)}'
반환 값표현하다명시되지 않은. 마치 혼란을 야기할 수 있는 것처럼표현하다$(expression)
반환 0
(숫자 컨텍스트에서 평가) 또는 빈 문자열 ""
(문자열 컨텍스트에서 평가)을 반환하거나 오류를 발생시켜야 하는 초기화되지 않은 변수입니다 .
그 시점부터 필드 변수는 다음과 같이 정의됩니다.
필드 변수는 "$" 뒤에 숫자 또는 숫자 표현식이 와야 합니다.
POSIX가 반환 값을 유지하는 이유어떤 표현이든미지정을 팔로우하시겠습니까 $
? 역사적인 이유인가, 아니면 다른 이유인가?
답변1
POSIX는 기존 관행을 성문화하기 위해 노력하고 있으며 불가피한 경우에만 새로운 지평을 열었습니다(예, 이는 나중에 고려한 표준입니다 ;-). Unix 코드는 결코 일관성의 전형이 아니었기 때문에(예를 들어 원본 vi(1)는 아마도 중요한 순간에 실행 파일의 몇 바이트를 삭제하기 위해 완전히 무작위 종료 코드를 반환했습니다) 수백 개의 다른 그룹 Adapted에서 사용되었습니다. 다양한 의제에 따라 수정되어 복제본(GNU와 같은 다른 여러 가지가 있음)이 생성되지만 다양한 무작위 동작을 다루기 위해 많은 부분이 정의되지 않은 상태로 남아 있습니다.