11

私は bash の初心者の問題を抱えています:
作成するパスは/Volumes/ADATA\ UFD/Programming/Qt/Volumes/ADATA\ UFD既に存在する場所です。次の形式でスクリプトを書きたいと思います。

# create a single output directory 
outputdir="/Volumes/ADATA\ UFD/Programming/Qt"
mkdir -pv $outputdir

私の問題はmkdir、ディレクトリを作成するの/Volumes/ADATA./UFD/Programmingはなく、/Volumes/ADATA\ UFD/Programming/Qt.

SO でこの質問を見てきました。ただし、これらのソリューションはどれも機能しませんでした。

outputdir=/Volumes/"ADATA\ UFD/Programming/Qt"
mkdir -pv $outputdir

outputdir=/Volumes/'ADATA\ UFD/Programming/Qt'
mkdir -pv $outputdir

outputdir='/Volumes/ADATA\ UFD/Programming/Qt'
mkdir -pv $outputdir

outputdir=/Volumes/ADATA' 'UFD/Programming/Qt
mkdir -pv $outputdir

私は何を間違っていますか?ここで良い組み合わせは何ですか?

4

2 に答える 2

19

変数を使用するときは、変数を引用符で囲む必要があります。展開された変数は単語分割されます。展開に特殊文字やスペースが含まれるかどうかに関係なく、常に展開を引用することをお勧めします。また、引用時にスペースをエスケープする必要はありません。

以下はあなたが望むことをします:

outputdir='/Volumes/ADATA UFD/Programming/Qt'
mkdir -pv "$outputdir"
于 2012-12-05T22:44:41.607 に答える
15

mkdirコマンドに渡される変数を二重引用符で囲みます。

mkdir -pv "$outputdir"
于 2012-12-05T22:43:11.917 に答える