Bashスクリプトに渡された特定のパラメータを「切り捨てる」最も簡単な方法は何ですか?

Bashスクリプトに渡された特定のパラメータを「切り捨てる」最も簡単な方法は何ですか?

aaaとbbbという2つのスクリプトがあります。

各スクリプトにはいくつかのパラメータがあります。引数は文字列、数字、または--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

おすすめ記事