bash`shift` 명령 변경 인수 개수`$ #`

bash shift 명령을 사용할 때 $#의 인수 개수가 변경 되나요?

작성자 참고 사항 : 이 질문이 있었을 때이 커뮤니티에서 아직 찾지 못했습니다. 따라서 나는 단순히 그것을 시도하고 내 대답을 얻었습니다. 다른 사람에게 도움이 될 것이라고 생각했기 때문에 여기에서 배운 내용을 자율 질문 으로 게시했습니다. .

답변

예, 있습니다. 표준에 명시 적으로 필요 :

shift [n] 위치 매개 변수가 이동됩니다. 위치 매개 변수 1에는 매개 변수 (1 + n), […] 의 값이 할당되고 매개 변수 “#”이 새로운 위치 수를 반영하도록 업데이트됩니다. 매개 변수.

다음 스크립트 고려 :

#!/usr/bin/env bash echo "$#" shift echo "$#" 

script-file first second third3 다음에 2를 인쇄합니다.

이는 할 수 있음을 의미합니다. 다음과 같습니다.

#!/usr/bin/env bash while [[ "$#" > 0 ]] ; do echo "$1" shift done 

… 인수를 한 줄에 하나씩 인쇄합니다.

코멘트

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다