aaa와 bbb라는 두 개의 스크립트가 있습니다.
각 스크립트에는 몇 가지 매개변수가 있습니다. 인수는 문자열, 숫자일 수도 있고 --some-action 또는 --name=foo와 같은 형식을 가질 수도 있습니다.
aaa 스크립트는 bbb 스크립트를 실행합니다. bbb의 일부 매개변수는 aaa에서 생성되지만 aaa 스크립트를 실행하여 일부 매개변수를 수동으로 추가할 수 있습니다. 예를 들면 다음과 같습니다.
$ aaa "arguments for aaa" "arguments for bbb"
bbb는 알 수 없는 매개변수를 제어할 수 있기 때문에 aaa의 모든 매개변수를 bbb에 전달할 수 없습니다.
aaa 스크립트에서 "bbb의 매개변수"를 추출하는 방법을 모르겠습니다. 누구든지 나를 도와줄 수 있나요?
그래서 저는 aaa에서 실행하고 싶습니다:
bbb "some arguments from aaa" "arguments for bbb"
답변1
aaa
다음을 사용하여 스크립트의 모든 매개변수를 구문 분석 할 수 있습니다.선택 항목 가져오기그런 다음 필요에 따라 스크립트에 전달합니다.
하나 조정했어요예:
#!/bin/bash
OPTS=`getopt -o abcdef -l argument-for-both: -- "$@"`
if [ $? != 0 ]
then
exit 1
fi
eval set -- "$OPTS"
while true ; do
case "$1" in
-a) OPT_a=true; shift;;
-d) ARG_B="$ARG_B -b"; shift;;
--argument-for-both)
OPT_argument_for_both=true
ARG_B="$ARG_B --argument-for-both"
shift;;
esac
done
# aaa
if [[ $OPT_a ]] ; then do_something ; fi
if [[ $OPT_argument_for_both ]] ; then do_something_else ; fi
# bbb
bbb $ARG_B