2015-10-06 85 views
-1

任何人都可以幫助我,爲什麼這不起作用。終端不會抱怨它使用./FHTest.sh運行,但它也不會輸出任何內容。在另一個shell腳本中使用相同的方法,我可以遍歷每個文件。從ls -l循環瀏覽文件夾和回顯文件名稱

輸出
#!/bin/bash 

OrDir="/Volumes/Misc/Downloads" 
find "$OrDir" -type f -exec /bin/bash -c \ 
    'f2=$(basename "$1") 
     echo "${f2%.*}" 
    ' _ {} \; 

-rwxr-xr-x 1 xxx staff   173 6 Oct 14:51 FHTest.sh 

回答

0

你的程序似乎是在這裏工作的罰款。有些事情要檢查可能是指定-H和/或-L到find(只有兩個POSIX支持的選項(-exec是一個操作數)),它控制遇到符號鏈接時的行爲。儘可能使用printf而不是echo。雖然printf有點棘手,但最終會帶來回報,因爲echo在殼層之間微妙變化。

#!/bin/sh 
OrDir="$(pwd)" 
find "$OrDir" -type f -exec /bin/bash -c \ 
'f2=$(basename "$1") 
f2="${f2%.*}" 
printf "$f2\n" 
' _ {} \; 
+0

輝煌正在工作!我記得在將來避免回聲 - 謝謝 – Tom

相關問題