我想在OS X(10.6/10.7)上建立一個BASH腳本來處理一個名爲QCExports的文件夾,它具有格式爲人名的文件夾「最後,第一」,即「邦德,詹姆斯」。OSX Bash腳本與名稱中的空格使用文件/文件夾
當我運行下面的腳本時,一切正常,但它會在文件夾或文件名中留下空間。
腳本代碼:
#!/bin/bash
echo "QuickCeph Export Script"
#Set Path to Process & Paths to Copy To
pathToQCExports=/Users/myuser/Desktop/QCExports
sureSmilePath=/Users/myuser/Desktop/QCExportsForSureSmile
sesamePath=/Users/myuser/Desktop/QCExportsForSesame
blankReplace=""
#Process Each Name
find $pathToQCExports -type d | while read name ; do
#escaping the folder with a space in the name
nameParsed=${name/", "/",\ "}
echo "Processing: "$nameParsed
pathSureSmile=${nameParsed/$pathToQCExports/$sureSmilePath}
pathSesame=${nameParsed/$pathToQCExports/$sesamePath}
mkdir $pathSesame
mkdir $pathSureSmile
echo "Folders Created"
#Copy For SureSmile
echo ${pathSureSmile}"/Suresmile-Frontal\ Photo.jpg" ${pathSureSmile}"/Suresmile-Frontal\ Photo.jpg"
#cp `${$pathSureSmile}"/Suresmile-Frontal\ Photo.jpg" ${pathSureSmile}"/Suresmile-Frontal\ Photo.jpg"`
#Copy For Sesame
echo ${pathSesame}"/Suresmile-Frontal\ Photo.jpg" ${pathSesame}"/S02.jpg"
#cp `${pathSesame}"/Suresmile-Frontal\ Photo.jpg" ${pathSesame}"/S02.jpg"`
done
echo "Completed";
輸出:
QuickCeph Export Script
Processing: /Users/myuser/Desktop/QCExports/BOND,\ James
mkdir /Users/myuser/Desktop/QCExportsForSesame/BOND,\ James
mkdir: James: File exists
mkdir /Users/myuser/Desktop/QCExportsForSureSmile/BOND,\ James
mkdir: James: File exists
Folders Created
/Users/myuser/Desktop/QCExportsForSureSmile/BOND,\ James/Suresmile-Frontal\ Photo.jpg /Users/myuser/Desktop/QCExportsForSureSmile/BOND,\ James/Suresmile-Frontal\ Photo.jpg
/Users/myuser/Desktop/QCExportsForSesame/BOND,\ James/Suresmile-Frontal\ Photo.jpg /Users/myuser/Desktop/QCExportsForSesame/BOND,\ James/S02.jpg
Completed
在OS X上通常是在終端,您使用\逃脫一個文件夾或文件名中的空間,但不似乎工作。
我注意到它將解釋空間,因爲正常空間會在命令行中解釋,並且認爲我想對兩個文件執行命令 - 即它不會向前傳遞\。我最終得到一個名爲「Bond,\」的文件夾和一個名爲「James」的文件夾,該文件夾用於執行腳本。
請注意,我刻意將cp命令排除在外,所以它們不會被執行......問題與創建文件夾&複製文件名相同。
如果我將這些命令的「echo'd」版本複製並粘貼到終端窗口中,則這些命令正常工作!但是當BASH執行它們時,它並不尊重它。 :(
任何想法?
謝謝! 約翰
完美!你是男人(或女人)。非常感謝!!! –
一個人是的,不客氣;) –