1

シェル スクリプトを使用して、定義済みの一連の 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 に答える