我正在尝试运行bash脚本,但由于某种原因,这部分输出给了我一个错误。
TIER1PCT=$[ $TIER1COUNT * 100 / $TOTAL ]
TIER2PCT=$[ $TIER2COUNT * 100 / $TOTAL ]
TIER3PCT=$[ $TIER3COUNT * 100 / $TOTAL ]
我收到此错误::syntax error: operand expected (error token is "/ ")
答案 0 :(得分:2)
bash或POSIX语法都不允许:
$[ integer expression ]
假设您要分配计算的整数结果,正确的POSIX语法将是:
TIER1PCT=$(( TIER1COUNT * 100 / TOTAL ))
TIER2PCT=$(( TIER2COUNT * 100 / TOTAL ))
TIER3PCT=$(( TIER3COUNT * 100 / TOTAL ))
整数数学的其他选择包括let
或expr
。 (注意每个空白的不同要求)
答案 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