确定位数 bash

Determine number of digits bash

我有一个日期,它通过 3 个单独的命令行参数输入到 bash 脚本中。用户可以为月份和日期输入 1 位或 2 位数字,为年份输入 4 位数字(例如 2014 01 012014 1 1)。但是我的脚本需要两位数字才能 运行。我正在考虑使用 if 语句来处理这个问题。它基本上会说 "if the amount of digits in the month is less than 2 then put a leading zero in front of it"。不过,我不确定如何确定 bash 中的位数。我是脚本编写的新手,所以非常感谢任何帮助!

对于任何bash变量$x(包括参数</code>、<code>等),${#x}是[=10=的长度] 字符。

您可以使用 printf 命令解决此问题:

month=5
month2=`printf %02d $month`

%02d 格式说明符将 $month 格式化为带前导零的两位十进制数字(如有必要)。