我正在尝试通过删除安装程序安装的所有文件来卸载程序。这是我尝试过的脚本,但是当我尝试运行它时,它会在Too many arguments
行(用6
突出显示)上返回“**
”错误。
通过Apple Remote Desktop将其部署到多台计算机上。
我想把它放在一个包中运行,但是作为可执行脚本也可以完成这项工作。我错了吗?这不是整个脚本,但它遵循相同的模式。
#!/bin/bash
## This will uninstall ETC Nomad v2.3.3.9.0.10.mpkg
## From Contents of ETCnomad Eos Mac 2.3.3.9.0.10.pkg
**if [ -d /Applications/Eos Family Welcome Screen.app ]; then**
/bin/rm -rf /Applications/Eos Family Welcome Screen.app
fi
if [ -f /tmp/Element_Hotkeys.pdf ]; then
/bin/rm -rf /tmp/Element_Hotkeys.pdf
fi
if [ -f /tmp/Eos_Hotkeys.pdf ]; then
/bin/rm -rf /tmp/Eos_Hotkeys.pdf
fi
if [ -f /tmp/FixtureReleaseNotes.pdf ]; then
/bin/rm -rf /tmp/FixtureReleaseNotes.pdf
fi
if [ -f usr/local/etc/DCIDTable ]; then
/bin/rm -rf usr/local/etc/DCIDTable
fi
exit 0
答案 0 :(得分:3)
答案
在包含空格的路径/文件名周围使用'
,否则shell会尝试将这些部分解释为与文件名不同而感到困惑,因此会出现错误消息。
更多评论
-f
选项忽略不存在的文件,因此测试变得无关紧要。PATH
环境变量用于在正确的位置搜索命令。/tmp/
删除文件,因为操作系统会为您执行此操作。/usr/
等系统文件夹时要小心,因为每次系统升级都会覆盖它们,而且通常很难说出所有依赖项。您可以简化脚本:
#!/bin/bash
## This will uninstall ETC Nomad v2.3.3.9.0.10.mpkg
## From Contents of ETCnomad Eos Mac 2.3.3.9.0.10.pkg
rm -rf '/Applications/Eos Family Welcome Screen.app'
# rm -rf /tmp/Element_Hotkeys.pdf
# rm -rf /tmp/Eos_Hotkeys.pdf
# rm -rf /tmp/FixtureReleaseNotes.pdf
rm -rf /usr/local/etc/DCIDTable
exit 0