bash - 获取数组元素大小
问题描述
我创建了一个由一系列数字组成的数组。如何检查每个元素的大小,并且根据位数,每个元素都有我想添加更多的数字。下面我有一些代码使用一个变量来完成这个,但我想用数组来做
#array I would like to use
start=0
end=20
myarray=( $(seq $start $end) )
#example of how I accomplish this using a variable. checks if the number of integers is between 1-5
and adds some numbers to the end. I would like to accomplish this but with an array.
number=2
local newnum=`expr length "$number"` #get lenght of the variable
if [ "$newnum" -eq "1" ];then
number="0000${number}"
elif [ "$newnum" -eq "2" ];then
number="000${number}"
elif [ "$newnum" -eq "3" ];then
number="00${number}"
elif [ "$newnum" -eq "4" ];then
number="0${number}"
elif [ "$newnum" -eq "5" ]; then
echo "you enter five numbers"
#number remains the size
else
exit
fi #end if
解决方案
单程:
for val in "${myarray[@]}"
do
len=${#val}
echo $val , $len
....do action depending on $len .....
done
推荐阅读
- function - eval(e,x,parent.frame())中的错误:找不到对象''
- javascript - 在 Javascript 中不间断地切换
- amazon-dynamodb - dynamodb 过滤不在列表中的值
- firebase - 如果文档 ID 等于当前用户,如何查询 Firestore 以返回字符串
- spring-boot - 我已经用 openapi-generator-maven-plugin 生成了我的 API 服务器,现在怎么办?
- composer-php - 如何从“pre-package-update”监听器取消作曲家更新操作
- wpf - WPF 对齐菜单项
- angular - 从 clr-dropdown 获取值
- javascript - 旋转圆柱体(硬币)的等距计算
- reactjs - 尝试在不让用户单击按钮的情况下自动运行方法