我正在尝试编写一个bash脚本来生成文件列表。我认为只需要在循环中调用'find'命令即可。但是,当在循环中调用该命令时,出现了“find: command not found”错误,我不知道为什么。
为了简洁,这个简化版本可以复制并重现问题,而不会让我们陷入无关的代码中。
#!/bin/bash
IFSprev=$IFS
IFS=$'|'
PATHS='openvpn|vms'
SOURCE='/mnt/store/'
#find "${SOURCE}vms" -type f
for PATH in ${PATHS}
do
echo -----------------------------------
find "${SOURCE}${PATH}" -type f
done
IFS=$IFSprev
在故障排除时,我添加了第一个“查找”命令......添加后,在循环内它随后有效。如果我再次注释它,“循环中的查找”将恢复抛出错误。
考虑到我将重定向循环输出到文件,我可以接受额外的“查找”命令,甚至只需重定向到空值。然而,我是一个好奇的人,我真的想找出问题所在。
感谢任何意见。
paths =(openvpn vms); for path in“$ {paths [@]}”; do echo“处理$path”;done
- Charles Duffyset -e
,一个好的资源会展示双方观点,或者至少提供其他可靠的选择)。 - Charles Duffy