【发布时间】:2015-06-22 21:53:16
【问题描述】:
我有 2 个 shell 脚本和 2 个 mpkg 安装程序,我正在尝试使用 unix 可激发文件来运行它们。这是我的脚本,但它总是有错误消息“没有这样的文件或目录”?
#!/bin/sh
# Find the absolute script current path
path=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
sudo sh $path/join.sh
sudo sh $path/join2.sh
#/usr/sbin/installer -dumplog -verbose -pkg $path/“esetv8.mpkg" -target /
#/usr/sbin/installer -dumplog -verbose -pkg $path/“sccm.mpkg” -target /
exit 0
非常感谢!
【问题讨论】:
-
在这里工作正常,您确定文件存在吗?您应该更加小心并首先检查它们是否存在,例如:
[ -f "${path}/join.sh" ] && sudo sh "${path}/join.sh"。请注意,如果目录包含空格,您的版本将失败,请在这种情况下添加引号。 -
添加一个
echo $path并验证它不包含空格和其他特殊字符。 -
谢谢,贝壳鱼。你说的对。我的目录包含 2 个空格。这就是它失败的原因:)
-
酷,让我写一个答案,这样人们以后就不会犯同样的错误了。
-
另外,我还有一个问题,你知道为什么我每次运行脚本时,首先列出当前脚本目录中的所有文件夹名称吗?谢谢!