gpt4 book ai didi

shell - 伯恩 shell : send arguments $2 to $N to variadic function?

转载 作者:行者123 更新时间:2023-12-04 05:25:17 25 4
gpt4 key购买 nike

谷歌终于让我失望了。我似乎无法在 Bourne shell 脚本中找到如何执行此操作:

我正在编写一个 shell 脚本来处理我对一个项目的所有测试。我已经为该脚本可以执行的每个任务(构建、运行、清理等)设置了函数,并希望将任何其他命令行参数(除了命令本身)传递给所需的函数。

例子:
./test.sh build -j应该通过-jbuild功能。

此逻辑的伪代码版本如下所示:

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

关于shell - 伯恩 shell : send arguments $2 to $N to variadic function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com