答案1
该错误来自您的使用$()
:
$(zip "$1.zip" $1)
这是命令替换,它将命令替换为其输出。因此 shell 获取zip
的输出并尝试将其解释为 shell 脚本的一部分:
adding: ...
adding:
在您的系统上不是有效命令,并且 shell 会对此进行抱怨。
您应该直接运行命令:
zip "$1.zip" "$1"
如果你想摆脱它的输出,重定向它,或者使用zip
的-q
选项(“quiet”):
zip "$1.zip" "$1" > /dev/null
zip -q "$1.zip" "$1"
这仍然会显示发生的任何错误。
答案2
确保您已安装 zip 命令。我使用的是 Debian Linux,尽管安装了 unzip,但默认情况下并未安装 zip。
此外,调用 zip 的命令的语法与调用 gzip 和 bzip2 的命令不同:
"$1.zip" versus "${1}.bz2" and "${1}.gz"