최근이 같은 쉘 스크립트에 인수를 전달하는 시도 :셸 : 옵션 매개 변수를 선택적이 아닌 매개 변수 뒤에 구문 분석 할 수 있습니까?
$./myscript.sh <sourcefile> <destinationfile> -o
스크립트는은 SourceFile과의 DestinationFile에 읽어야합니다 - 모두 의무적으로해야한다 - 그리고 결국 추가 선택적 매개 변수를 확인합니다. 그러나 옵션 -o
을 getopts
으로 구문 분석하려고 시도하면 찾을 수 없습니다. 항상 "거짓"또는 "0"입니다. 다른 매개 변수보다 먼저 전달 된 경우에만 -o
옵션을 인식합니다!
$./myscript.sh -o <sourcefile> <destinationfile>
이 방법으로 만 작동해야합니까? 내가 규칙, 관례 또는 스크립트 연습을 할 때 나는이 필수 정보를 찾지 못해서 많은 시간을 낭비하는 시행 착오를 통해서만 그것을 발견 할 수있다 ... 또한 복사 명령 과정이 어떻게 작동하는지 궁금하다. 선택 사항이 아닌 옵션 매개 변수와 함께 선택 가능
getopts를 호출하기 전에 항상 처음 두 매개 변수를 캡처하고 제거 할 수 있습니다. –
그건 결국 이해가됩니다. 이전에 그것들을 앞에 놓으려고했으나 getopts를 호출하기 전에 그들을 멀리 옮기는 것을 잊었다. 그래서 그것은 작동하지 않았다. 고마워, 바로 이걸 시험해 볼거야! – Malvin