2013-12-22 1 views
2

셸 스크립트의 다른 명령에서 사용하기 위해 수집 된 모든 옵션을 전달하려고합니다. 예를 들어 셸의 모든 옵션을 수집합니다.

스크립트처럼 실행할 경우 : getopts가이 .:o.:t.:k.:r
  • 실행하는 다른 서류를 (R이 현재 실행에 사용되지 않음)되고

    1. 마스터에서

      ./master -o -t -k Arg1 
      

      모든 내부 스크립트에 사용 된 옵션을 사용해야합니다.

    ./slave -o -t -k Arg2 
    

    (-o -t -k) 또는 다른 옵션 조합 항목을 사용하려면 어떻게해야합니까?

  • +1

    받은 모든 옵션을 슬레이브로 전달하기 만하면 ./slave $ @가 트릭을 수행합니다. – alvits

    +1

    @ user3088572 : 변형을'$ @'표기법으로 사용하려면' "$ @"'을 사용하여 인수 안에 공백을 유지해야합니다. –

    +0

    옵션 문자열에있는 점들은 어떻게 생각하십니까? [Bash 매뉴얼] (http://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html)에는 그들에 대한 언급이 없습니다. 특별한 의미가 아니라면,'-o','-t','-k' 또는'-r' 중 어느 것도 인자를 허용하지 않습니다. 명령 줄에서 '무언가'는 필수 항목입니다 (그리고'. :'여러 번은 중요하지 않으며 첫 번째 항목은 충분 함). –

    답변

    0

    ./slave ${*/Arg1/Arg2} 할 수 있습니다. 이 경우 master에서 slave으로의 모든 인수가 Arg1Arg2으로 바꾼 후에 전송됩니다. 좋은 점은 $*이 모든 입력을 하나의 문자열로 평가한다는 것입니다 ([email protected]과 달리).

    +0

    조나단 레 플러 (Jonathan Leffler)의 의견을 참고하십시오. "$ @"는 공백을 보존합니다. $ *는 그렇지 않습니다. – alvits

    관련 문제