我已经使用Shell脚本编写了以下命令:
/usr/bin/find ${FilePath[$i]} -name ${FileName[$i]}* -type f -mtime +${DaysNo[$i]} | grep ${FilePath[$i]}$tempfile > tempFilesList
当我直接执行此脚本时看起来不错,但是当我尝试从另一个 shell脚本执行该脚本时,出现以下错误。
ERROR : /usr/bin/find: bad option resultmgr.log_2019-11-07
/usr/bin/find: [-H | -L] path-list predicate-list
答案 0 :(得分:0)
很可能${FileName[$i]}*
被扩展为多个文件名,这将在您的命令中给您类似-name file1 file2
的名称。
例如,如果您从另一个脚本运行该掩码时,当前工作目录中存在与该掩码匹配的文件,而从命令运行时,则为 not 线。根据下面的记录,某些shell会尽可能扩展,但如果不保留则单独保留:
~> echo testprog*
testprog testprog.c
~> echo nosuchfile*
nosuchfile*
~> _
该file2
将被视为find
的控制参数,因此无效。
您可以通过在运行该命令之前简单地回显该命令来对其进行检查:
echo Will run: /usr/bin/find ${FilePath[$i]} -name ${FileName[$i]}* -type f -mtime +${DaysNo[$i]} ...
并查看其输出。