谁能帮我解决为什么这不起作用。Terminal不会抱怨它正在使用./FHTest.sh运行,但是它也不输出任何内容。在另一个shell脚本中使用相同的方法,我可以遍历每个文件。
#!/bin/bash
OrDir="/Volumes/Misc/Downloads"
find "$OrDir" -type f -exec /bin/bash -c \
'f2=$(basename "$1")
echo "${f2%.*}"
' _ {} \;
来自的输出ls -l
:
-rwxr-xr-x 1 xxx staff 173 6 Oct 14:51 FHTest.sh
您的程序在这里似乎运行良好。要检查的一些事情可能是将-H和/或-L指定为find
(仅两个POSIX支持的选项(-exec是一个操作数)),该选项控制遇到符号链接时的行为。也尽可能使用printf
代替echo
。尽管printf
有点棘手,但最终会echo
有所回报,因为各个shell之间的细微差异会有所不同。
#!/bin/sh
OrDir="$(pwd)"
find "$OrDir" -type f -exec /bin/bash -c \
'f2=$(basename "$1")
f2="${f2%.*}"
printf "$f2\n"
' _ {} \;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句