Linux语法错误

时间:2016-11-07 06:24:37

标签: linux bash scripting

我正在尝试运行bash脚本,但由于某种原因,这部分输出给了我一个错误。

TIER1PCT=$[ $TIER1COUNT * 100 / $TOTAL ] TIER2PCT=$[ $TIER2COUNT * 100 / $TOTAL ] TIER3PCT=$[ $TIER3COUNT * 100 / $TOTAL ]

我收到此错误::syntax error: operand expected (error token is "/ ")

2 个答案:

答案 0 :(得分:2)

bash或POSIX语法都不允许:

$[ integer expression ]

假设您要分配计算的整数结果,正确的POSIX语法将是:

TIER1PCT=$(( TIER1COUNT * 100 / TOTAL ))
TIER2PCT=$(( TIER2COUNT * 100 / TOTAL ))
TIER3PCT=$(( TIER3COUNT * 100 / TOTAL ))

整数数学的其他选择包括letexpr。 (注意每个空白的不同要求)

答案 1 :(得分:1)

试试这个;

TOTAL=$(cat $NEWUSERSFILE | wc -l)

if [ -n "$TOTAL" ]; then
TIER1PCT=$[ $TIER1COUNT * 100 / $TOTAL ]
TIER2PCT=$[ $TIER2COUNT * 100 / $TOTAL ]
TIER3PCT=$[ $TIER3COUNT * 100 / $TOTAL ]

else 
echo  $TOTAL is null
fi