Bourne shell:将$2到$N的参数发送到可变参数函数?
发布时间:2020-12-16 01:21:51 所属栏目:安全 来源:网络整理
导读:谷歌终于让我失望了.我似乎无法在Bourne shell脚本中找到如何执行此操作: 我正在编写一个shell脚本来处理我对项目的所有测试.我为这个脚本可以执行的每个任务设置函数(构建,运行,清理等),并且希望将任何其他命令行参数(除了命令本身)传递到所需的函数. 例:
谷歌终于让我失望了.我似乎无法在Bourne
shell脚本中找到如何执行此操作:
我正在编写一个shell脚本来处理我对项目的所有测试.我为这个脚本可以执行的每个任务设置函数(构建,运行,清理等),并且希望将任何其他命令行参数(除了命令本身)传递到所需的函数. 例: ./test.sh build -j应该将-j传递给构建函数. 此逻辑的伪代码版本如下所示: function build() { make $* } if [ $1 == 'build' ]; then build $2 -> $N fi 我怎么能做到这一点?
我认为你可以使用shift命令实现这个效果.它会将所有位置参数向下移动一个位置并降低$1的值(因此$3的值将移至$2,$2的值将移至$1并且$1的值将丢失).一旦你完成了,你可以使用$@来获取你真正感兴趣的参数列表,例如:
function build() { echo "build with $@" } echo "Starting args are $@" cmd=$1 shift if [ "$cmd" = 'build' ]; then build "$@" fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |