在文本文件test.txt中,我有以下信息:
sl-gs5 desconnected Wed Oct 10 08:00:01 EDT 2012 1001
我想通过下一个命令行提取事件的小时数:
hour=$(grep -n sl-gs5 test.txt | tail -1 | cut -d' ' -f6 | awk -F ":" '{print $1}')
我得到了“08”。当我尝试添加1,
14 echo $((hour+1))
我收到下一个错误信息:
./test2.sh: line 14: 08: value too great for base (error token is "08")
如果Bash中的变量无类型,为什么?
参见人物评估中的算术评估:
Constants with a leading 0 are interpreted as octal numbers.
您可以通过参数扩展来删除前导零:
hour=${hour#0}
或强制基础10解释:
$((10#$hour + 1))