如何在Shell脚本中实现字符串与整数互转及格式化补零
Shell 三位补零序列号自增实现方案
你需要的逻辑可以通过bash算术扩展+printf格式化实现,修改后的代码如下:
input_sub=000 while [ -d "$input_dir" ] do echo "$input_sub" # 转十进制整数加1后格式化为3位补零字符串 input_sub=$(printf "%03d" $((10#$input_sub + 1))) done
实现说明
- 算术扩展
$((10#$input_sub + 1))中10#前缀的作用是强制将带前导零的字符串按照十进制规则解析,避免被bash默认识别为八进制数导致数值计算错误。 printf "%03d"会自动将整数输出为3位长度的字符串,不足位数的位置自动补前导零,无需额外做字符串拼接操作。- 以上写法兼容所有POSIX标准的shell环境,适用性最广。
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

