bash将所有参数从函数传递到命令,最后一个除外

问题描述 投票:0回答:1
myfunc ()
{
    if [${*: -1} == "some argument"]
    then
        command anotherCommand "$@"
    elif [ ... ] 
        ...
    fi
}

如何更改"$@",以便将所有参数传递给anotherCommand 最后一个除外

bash arguments parameter-passing
1个回答
2
投票

您可以将脚本更改为:

myfunc ()
{
    if [${*: -1} == "some argument"]
    then
        command anotherCommand "${@:1:$#-1}"
    elif [ ... ] 
        ...
    fi
}

并且您实际上将弹出最后一个参数。

示例:

#!/bin/bash


myfunc ()
{
    echo "${@:1:$#-1}"
}

myfunc apple orange banana watermelon

打印

$ ./some.sh 
apple orange banana
© www.soinside.com 2019 - 2024. All rights reserved.