如何在Bash中将字符串转换为整数?

时间:2013-10-01 03:21:46

标签: linux oracle bash shell

我在StackOverflow上找到了很多关于此问题的答案,但我不能将它们应用到我的代码中。

我使用此命令获取当月的最后一天:

LASTDAY=`cal $(date +"%m %Y") | grep . | fmt -1 | tail -1`

然后我使用这段代码:

for i in {1..${LASTDAY}}
do
    # code for processing here!
done

但总是得到这个警告: 第12行:[:{1..31}:预期的整数表达式

{1..31} 但我预计 i 是范围内的数字[1,31]

我试过这个:

LASTDAY=$((LASTDAY+0))

LASTDAY=$( echo "$LASTDAY - 0" | bc )

LASTDAY=$(printf "%d" "$LASTDAY")

但它无法解决这个问题。我的代码有什么问题?以及如何解决它?

先谢谢。

1 个答案:

答案 0 :(得分:8)

使用以下代替for i in {1..$Lastday}

for i in $(seq 1 ${LASTDAY}) ; do  echo $i done

这样可行。