我正在编写 shell 脚本。我需要检查特定目录是否存在具有 2 个特定文件扩展名“eob”和“inp”的文件,如果存在我想留在循环中并继续检查直到文件不存在,然后我想打破我的循环并继续其余的逻辑。
以下是我到目前为止的代码,但它不起作用......
while true
do
[ ! find /home/mpcmi/cm -type f \( -name "*.eob" -o -name "*.inp" \) ] && break
echo "eob or inp file exists"
sleep 2
done
echo "eob or inp file doesn't exists"
首先,运行脚本时出现此错误:
"/home/mpcmi/cm: unknown test operator"
其次,它检查并正确找到具有这些扩展名的文件我想是因为我得到了输出:“eob or inp file exists”但是当我删除我的测试“eob”和“inp”文件时,脚本似乎没有检测到它,它停止打印“eob 或 inp 文件存在”,但它从不打印“eob 或 inp 文件不存在”
下面是整个输出,然后在我删除测试“eob”和“inp”文件后它就停止了:
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
employees_load.sh[9]: /home/mpcmi/cm: unknown test operator
eob or inp file exists
有人可以帮忙吗?
谢谢!