如何使用shell脚本格式化数组中的字符串?

如何使用shell脚本格式化数组中的字符串?,shell,Shell,我是shell脚本的初学者,我的代码有点问题 我的目标是控制数组“mystring”中数字的大小和格式 #/bin/bash mystring=“3334433333344333” 期望值=4 addLeftZero(){ 如果[$myCount-eq$expectedValue] 然后 #号码大小正确 其他的 #在这里,我必须在“0”之前加上前缀,直到数字达到预期长度, #例如,数字“333”将是“0333” fi #在这里,我必须返回带有mods的完整数组 } 如果s=','read-ra

我是shell脚本的初学者,我的代码有点问题

我的目标是控制数组“mystring”中数字的大小和格式

#/bin/bash
mystring=“3334433333344333”
期望值=4
addLeftZero(){
如果[$myCount-eq$expectedValue]
然后
#号码大小正确
其他的
#在这里,我必须在“0”之前加上前缀,直到数字达到预期长度,
#例如,数字“333”将是“0333”
fi
#在这里,我必须返回带有mods的完整数组
}

如果s=','read-ra ADDR假设您只想用零填充数字,这可以在单个命令中完成:

$ printf '%04d\n' "${ADDR[@]}"
0333
4444
0333
0333
4444
0333
0333
在这里,数组中的每个数字都作为一个单独的参数传递给
printf
,它负责为您设置格式

当然,这是否合适取决于你的计划如何使用这些数字

另外,
return
仅用于指示例程是否成功。因此,它只支持从
0
255
的值。要从函数或命令输出内容,请使用标准输出/错误

$ printf '%04d\n' "${ADDR[@]}"
0333
4444
0333
0333
4444
0333
0333