我有兩個腳本: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