关于linux:语法错误:操作数预期(错误标记为“+”)(我不能用其他线程解决这个问题)

Syntax error: operand expected (error token is “+”) (i coudn't resolve this problem with the other thread)

本问题已经有最佳答案,请猛点这里访问。

我不能让这个简单的程序运行,代码看起来像这样,因为是为了一个课堂练习,我不会这样做,但我必须这样做,对不起,如果代码是一个混乱,但我已经尝试了很多事情,代码有点"变形"

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


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

在第4行,情况相同,但您也忽略了命令周围的反勾号"`",这表示bash要评估反勾号中的内容并返回该命令的输出。

第5行写着:

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

你的意思是:

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

更新:我还发现了三个问题:

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

你把d""传给cut,正确的选择是-d""

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