bash elif没有像我预期的那样工作

时间:2016-09-10 10:36:34

标签: bash

这是我的剧本:

age=119

if [[$age -gt 99 ]]; then
    age_3digits=$age
elif [[$age -gt 9]]; then
    age_3digits=0$age
else
    age_3digits=00$age
fi   

z_grid=${age_3digits}Ma.grd
echo $z_grip


output: 00119Ma.grd
怎么来的?我是bash的新手,非常感谢

1 个答案:

答案 0 :(得分:1)

[[之后和]]之前需要一个空格。改为:

if [[ $age -gt 99 ]]; then
    age_3digits=$age
elif [[ $age -gt 9 ]]; then
    age_3digits=0$age
else
    age_3digits=00$age
fi 

使用算术表达式也更好,因为它使您的代码更具可读性,如下所示:

if (( age > 99 )); then
    age_3digits=$age
elif (( age > 9 )); then
    age_3digits=0$age
else
    age_3digits=00$age
fi