首页 > 解决方案 > 处理第二个和更多参数中的每一个

问题描述

我有一个 bash 脚本可以再接受 1 个参数。我想分别处理第二个和进一步的参数。这是我的尝试:

SECOND_PLUS_ARGS="${@:2}"

for arg in "${SECOND_PLUS_ARGS[@]}"; do
    echo "arg = $arg"
done

运行它作为./script.sh 1 2 3 4打印以下输出:

$ ./script.sh 1 2 3 4                                                                                                                                                                        
arg = 2 3 4      

我期望:

$ ./script.sh 1 2 3 4                                                                                                                                                                        
arg = 2
arg = 3
arg = 4

有没有办法修复脚本?

标签: linuxbashshellcommand-line-arguments

解决方案


SECOND_PLUS_ARGS创建为标量然后将其用作数组没有多大意义。将其创建为数组:

SECOND_PLUS_ARGS=("${@:2}")

推荐阅读