我正在编写shell脚本。我需要检查特定目录中是否存在具有两个特定文件扩展名"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或inp文件存在”,但是当我删除我的测试“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
有人能帮忙吗?
谢谢!