1

我正在尝试在 shell 脚本中将一组预定义的 Chrome 书签复制到 Chrome 将它们保存在 Mac 上的位置(~/Library/Application Support/Google/Chrome/Default)。在脚本中我有:

#!/bin/sh
bookmarks_dir="$HOME/Library/Application\ Support/Google/Chrome/Default"
cp -v "bookmarks/Bookmarks" "$bookmarks_dir"

但是当我运行它时,我得到:

cp: /Users/aparkin/Library/Application\ Support/Google/Chrome/Default: No such file or directory

如果我在上面的错误消息中复制并粘贴路径并手动执行 cp:

cp -v bookmarks/Bookmarks /Users/aparkin/Library/Application\ Support/Google/Chrome/Default

它复制得很好,因此该目录确实存在。似乎是路径中的空间绊倒了事情。

我错过了什么?我想如果一个变量用引号引起来,文件名中的空格不再会导致问题?

4

1 回答 1

3

摆脱定义\中的。$bookmarks_dir它被视为文字\:如果你做了,$echo bookmarks_dir你会看到它。

仅当\您不在字符串周围加上引号时才有用。所以,

bookmarks_dir=$HOME/Library/Application\ Support/Google/Chrome/Default

也可以。

于 2012-09-26T16:44:12.090 回答