“剪切”传递给 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

相关内容