Bash:除最后一个元素之外的所有数组

时间:2017-07-06 04:20:21

标签: bash

Bash有一种巧妙的方式来给出除第一个之外的数组中的所有元素:

$query->where(['cat_status' => 1])->first();

除了我发现的最后一个以外的所有内容:

"${a[@]:1}"           

但是,伙计,这很难看。

有优雅的选择吗?

1 个答案:

答案 0 :(得分:7)

我不确定它会有多大的改进,但您可以删除算术运算符($(()))并在此处开始索引(0):

${a[@]::${#a[@]}-1}

所以:

$ foo=( 1 2 3 )

$ echo "${foo[@]::${#foo[@]}-1}"
1 2

正如您所看到的,改进纯粹是语法上的;这个想法保持不变。