셸 스크립트의 다른 명령에서 사용하기 위해 수집 된 모든 옵션을 전달하려고합니다. 예를 들어 셸의 모든 옵션을 수집합니다.
스크립트처럼 실행할 경우 : getopts가이.:o.:t.:k.:r
- 마스터에서
./master -o -t -k Arg1
모든 내부 스크립트에 사용 된 옵션을 사용해야합니다.
./slave -o -t -k Arg2
(-o -t -k
) 또는 다른 옵션 조합 항목을 사용하려면 어떻게해야합니까?
셸 스크립트의 다른 명령에서 사용하기 위해 수집 된 모든 옵션을 전달하려고합니다. 예를 들어 셸의 모든 옵션을 수집합니다.
스크립트처럼 실행할 경우 : getopts가이.:o.:t.:k.:r
./master -o -t -k Arg1
모든 내부 스크립트에 사용 된 옵션을 사용해야합니다.
./slave -o -t -k Arg2
(-o -t -k
) 또는 다른 옵션 조합 항목을 사용하려면 어떻게해야합니까?
./slave ${*/Arg1/Arg2}
할 수 있습니다. 이 경우 master
에서 slave
으로의 모든 인수가 Arg1
을 Arg2
으로 바꾼 후에 전송됩니다. 좋은 점은 $*
이 모든 입력을 하나의 문자열로 평가한다는 것입니다 ([email protected]
과 달리).
조나단 레 플러 (Jonathan Leffler)의 의견을 참고하십시오. "$ @"는 공백을 보존합니다. $ *는 그렇지 않습니다. – alvits
받은 모든 옵션을 슬레이브로 전달하기 만하면 ./slave $ @가 트릭을 수행합니다. – alvits
@ user3088572 : 변형을'$ @'표기법으로 사용하려면' "$ @"'을 사용하여 인수 안에 공백을 유지해야합니다. –
옵션 문자열에있는 점들은 어떻게 생각하십니까? [Bash 매뉴얼] (http://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html)에는 그들에 대한 언급이 없습니다. 특별한 의미가 아니라면,'-o','-t','-k' 또는'-r' 중 어느 것도 인자를 허용하지 않습니다. 명령 줄에서 '무언가'는 필수 항목입니다 (그리고'. :'여러 번은 중요하지 않으며 첫 번째 항목은 충분 함). –