len=`echo "${#jday}"`
if [ "$len"==1 ];
then
new_jday=`echo "00 $jday" | awk '{print $1$2}'`
fi
在上面的代码中,我获得了len变量,它是循环中给定整数($ jday)中的位数。这些整数有1,2或3位数,对于那些只有1位数的整数,我想在前面加“00”(例如,如果整数是1,它应该显示为001)。但是,当我运行上面的代码时,所有整数都附加了00,我不明白为什么会这样。当我回复len时,我得到正确的长度(即1,2或3)。任何帮助深表感谢。
答案 0 :(得分:0)
' =='用于比较字符串,尝试' -eq'
if [ "1"==1 ];
then
echo "1";
fi
if [ "2"==1 ];
then
echo "2";
fi
if [ "1" -eq 1 ];
then
echo "1";
fi
if [ "2" -eq 1 ];
then
echo "2";
fi
将输出:
1
2
1
答案 1 :(得分:0)
我没有通过if条件,而是选择使用printf函数将整数格式化为3位数字,如下所示;
new_jday = $(printf"%03d" $ jday)