在 Shell 脚本中,变量赋值时不应该有空格,因为空格会被解释为命令的一部分。因此,应该写成 newname= 而不是 newname =。

正确的写法:

newname=$(echo "$file" | sed 's/微信图片/ems/')

在这里,$(...) 语法用于执行命令并将其输出赋给变量 newname。

如果你写成 newname =,Shell 将尝试执行一个名为 newname 的命令,而不是将等号右侧的内容赋给 newname 变量。

因此,请确保在变量赋值时不要有空格,这是 Shell 语法的一部分。