shell脚本错误与模数operator..which不会取0值

时间:2017-09-18 10:41:54

标签: shell unix

我有变量" sum_test_sub"当" sum_test"的结果时是0。

date_val=16
refresh_count=0

sum_test=$((${date_val#0}%2+refresh_count))
sum_test_sub=$((${sum_test#0}%2))

以下是错误:

%2: syntax error: operand expected (error token is "%2")

为什么值0被识别?难道我做错了什么??请帮忙..

1 个答案:

答案 0 :(得分:1)

${var#0}中的bash构造将从0变量中删除前导var

如果您有类似"07"的内容,那将会很好"7"。但是,如果您的变量为"0",则最终会得到""

Bash可以处理0作为模数的第一个参数,它可以处理的是一个空字符串。

我不确定您为什么甚至使用前缀删除变量扩展,因为 你的变量无论如何都以0开头。< / p>