我想在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执行它们时,它并不尊重它。 :(
任何想法?
谢谢! 约翰
完美!你是男人(或女人)。非常感谢!!! –
一个人是的,不客气;) –