我正在编写一个 bash 脚本,它使用第一个输入参数和第二个参数foo.sh
运行命令:bar
baz
#! /bin/bash
bar "$1"
baz "$2"
现在我想使其foo.sh
更加灵活,拥有可选数量的bar
和参数baz
,如下所示:
./foo.sh bar_args="-x -v message=hello" baz_args="-d -m"
我想foo.sh
将bar_args
输入参数传递给和bar
。如果没有给出任何一个参数,我也希望它能够正常工作(例如,如果没有提供,则应该在没有任何参数的情况下调用)。baz_args
baz
foo.sh
bar_args
bar
这个怎么做?
答案1
你可以做到这一点,但它有点脆弱
foo.sh 将会像这样
#! /bin/bash
declare "$@" # evaluate the params as variable declarations
bar $bar_args # not quoted!
baz $baz_args # not quoted!
然后,./foo.sh bar_args="-x -v message=hello" baz_args="-d -m"
就会像你希望的那样工作。
不要尝试传递带有空格的消息,无法以这种方式完成。