「剪切」傳遞給 bash 腳本的特定參數的最簡單方法是什麼

「剪切」傳遞給 bash 腳本的特定參數的最簡單方法是什麼

我有兩個腳本:aaa 和 bbb。

每個腳本都有一些參數。參數可以是字串、數字或具有類似 --some-action 或類似 --name=foo 的格式。

腳本aaa 執行腳本bbb。 bbb 的一些參數在 aaa 中生成,但我可以透過執行腳本 aaa 手動添加一些參數,例如:

$ aaa "arguments for aaa" "arguments for bbb"

我無法將 aaa 的所有參數傳遞給 bbb,因為 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

相關內容