语法错误:预期的操作数(错误标记为“ +”)(我无法使用其他线程解决此问题)

时间:2019-01-27 17:23:55

标签: linux shell

我无法让这个简单的程序正常工作,代码看起来像这样,因为对于一次课堂练习,我不会那样做,但是我不得不这样做,对不起,如果代码混乱,但是我尝试了很多事情,代码有点“变形”

n= 0
for x in /home
do
e= du $x -B1 | cut d" " -f 1
$sum$(($sum+$e))
done
echo $sum

1 个答案:

答案 0 :(得分:1)

在第1行中,“ =”和0之间有一个空格,但是在赋值中,“ =”之前或之后都不应有空格。

第4行的情况相同,但是您还错过了命令周围的反引号'`',这表明bash会评估反引号内的内容并返回该命令的输出。

第5行显示:

$sum$(($sum+$e))

所以你的意思是:

sum=$(($sum+$e))

更新:我发现了另外三个问题:

在第2行中,将/home替换为/home/*,因为前者仅在循环中使用/ home,而后者则返回/ home目录中的每个目录(和文件)。

您要将d" "传递给cut,正确的选项是-d " "

此外,du输出的格式是制表符,而不是空格。如果您删除-d " "中的cut,它将起作用。