2

我有一个在 OS X 上运行的简单 bash 脚本,它删除特定的文件和目录并在它们的位置复制新的。一个 Mac .app 目录包含一个空格,当我运行脚本时出现“没有这样的文件或目录”错误。

这是相关的代码。已经删掉了很多,因此不可能简单地对这些进行不同的硬编码(变量必须按原样分解):

CP="cp -Rf"

INSTALL_DIR="/Applications/"

APP="The App.app"

NEWAPP="$HOME/Downloads/The App.app"

$CP "$NEWAPP " "$INSTALL_DIR$NEWAPP"

我尝试过The\ App.app没有运气的转义,以及尝试单引号、双引号和双引号,但没有任何效果。我想有一种简单的方法可以做到这一点。

谢谢你的帮助。

4

2 回答 2

5

你有一个额外的空间,很简单

“$NEWAPP”

于 2011-07-27T17:44:50.770 回答
-2

将整个最后一行用引号括起来:

"$CP $NEWAPP $INSTALL_DIR$NEWAPP"

此处不必一直打开和关闭引号,并且 $CP 必须包含在引号中,因为 CP 中有空格。

于 2011-07-27T17:46:09.030 回答