Я пишу сценарий оболочки. Мне нужно проверить конкретный каталог для существования файлов с 2-мя конкретными расширениями файлов «eob» и «inp», а если существует, я хочу остаться в цикле и продолжать проверять до тех пор, пока файлы не будут существовать, тогда я хочу выйти из своего цикла и продолжайте с остальной частью логики.Unix Shell Scripting - Loop до тех пор, пока файлы не будут найдены
Ниже приведен код, у меня до сих пор, но это не работает ...
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
Может кто-то помочь?
Спасибо!
Спасибо всем за Свои замечания! Вопрос - как мне заставить его просматривать только каталог/home/mpcmi/cm и НЕ переходить к подкаталогам? Спасибо! – user2179092