arrays - shell脚本数组长度

标签 arrays shell

我假设我的 shell 脚本的参数将是 ./x.sh subject N file1 file2 fileN 所以我将 argv 从 3 拼接到最后 candidates=${@:3}

现在我想检查候选人的长度是否与给定的 N 相同,我正在尝试使用 echo $((${#candidates[@]})) 其中始终返回1

我可以echo "$#-2"| bc 但是,我不应该能够获得数组大小吗?

我可以使用bc进行整数比较。但我必须知道我没有正确得到的“候选数组”的大小。

最佳答案

分配候选者的方式不是创建数组。要使其成为数组,请执行以下操作:

candidates=(${@:3})

在 bash 中,您可以使用 ${#candidates[*]} 获取数组中元素的数量。要检查它是否等于 $2,只需执行以下操作:

[[ ${#candidates[*]} == "$2" ]]

关于arrays - shell脚本数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882859/

相关文章:

php数组生成挑战

c# - 在 C# 的数组列表中查找数组的索引

javascript - 如何遍历对象数组并检查名称是否存在?

linux - 显示 bash 数组

bash - 如何将curl输出保存在gitlab变量中?

c - 在 C 中使用带有 for 循环的数组

java - 将嵌套的 JSONObject 转换为 JSONArray,然后将其放入 java 中的 HashMap 中

linux - 文本文件中的单引号完整路径文件无法执行 for 循环处理 mv : cannot stat . .. 没有这样的文件或目录

linux - 主动等待在linux中常见吗

linux - 在 Linux 中重新启动文件更改进程