我目前正在寻找以下代码的替代方法,该方法的工作量要比“ wonky”少一些。
printf "Please enter the ticket number:\t"; read vTICKET; vTICKET=$(printf %04d "$vTICKET"); printf "$vTICKET\n";
如果我输入072
作为输入,这就是我所看到的
Please enter the ticket number: 072
0058
我想知道是否还有另一种方法可以让我更宽容输入或read
命令?printf
似乎是在不实际测试字符串长度的情况下添加前导零的一种很酷的方法。
输入值的前导零使外壳程序将其解释为八进制数。
您可以使用10#
例如强制十进制转换
$ printf "Please enter the ticket number:\t"; read vTICKET; vTICKET=$(printf %04d "$((10#$vTICKET))" ); printf "$vTICKET\n";
Please enter the ticket number: 072
0072
需要注意的是在bash,你可以分配的结果printf
直接用一个变量-v
如printf -v vTICKET %04d "$((10#$vTICKET))"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句