如何抑制日期输出中的前导零?
How to suppress leading zero in date output?
我有这个代码:
printf -v s '%(%S)T' -1 # grab the current second
if ((s == 0)); then
# at the top of the minute, run some code
fi
此代码在每分钟的第八和第九秒抛出错误:
bash: ((: 08: value too great for base (error token is "08")
bash: ((: 09: value too great for base (error token is "09")
我该如何纠正这个问题?基本上,我们需要抑制 printf
.
生成的日期输出中的前导零
在格式字符串中使用 -
前缀,因此:
printf -v s '%(%-S)T' -1
这会抑制前导零。
解决此问题的更通用的 way 是以这种方式指定 Bash 算术中的基数,同时保持 printf
命令不变:
if ((10#$s == 0)); then
Unix 上的相关 post 和 Linux 堆栈交换:
我有这个代码:
printf -v s '%(%S)T' -1 # grab the current second
if ((s == 0)); then
# at the top of the minute, run some code
fi
此代码在每分钟的第八和第九秒抛出错误:
bash: ((: 08: value too great for base (error token is "08")
bash: ((: 09: value too great for base (error token is "09")
我该如何纠正这个问题?基本上,我们需要抑制 printf
.
在格式字符串中使用 -
前缀,因此:
printf -v s '%(%-S)T' -1
这会抑制前导零。
解决此问题的更通用的 way 是以这种方式指定 Bash 算术中的基数,同时保持 printf
命令不变:
if ((10#$s == 0)); then
Unix 上的相关 post 和 Linux 堆栈交换: