2015-10-06 84 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

相关问题