如何在 bash 脚本算术运算中抑制 0 删除?

如何在 bash 脚本算术运算中抑制 0 删除?

例如,代码如下:

#!/bin/bash
s=00
until [ $s -eq 60 ] 
do
    let "s += 1"
    echo $s
done

$s 将是 1、2、3 等,但不是 01、02、03 等。我该如何避免删除 0?因此,我需要 $s 为 01-09,然后是 10、11 等。

答案1

打印时添加零。

#!/usr/bin/env bash
s=0
until ((++s == 60 )); do
    printf '%02d\n' "$s"
done

带有前导零的数字将被视为八进制,因此 08 和 09 等值将失败。因此,最好对没有前导零的数字进行操作,并且仅在需要打印时添加前导零。

另请参阅http://mywiki.wooledge.org/BashFAQ/018

相关内容