#!/bin/sh
for i in {0..999}
do
if [$i lt 10]
then
nohup java BeginIndex ~actors/00{$i} ~/index_new/ > ~/results/actors_results/00{$i}.txt
echo "INDEXING ($i)th directory completed "
elif [$i lt 100]; then
nohup java BeginIndex ~/actors/0{$i} ~/index_new/ > ~/results/actors_results/0{$i}.txt
echo "INDEXING ($i)th directory completed "
else
nohup java BeginIndex ~/actors/{$i} ~/index_new/ > ~/results/actors_results/{$i}.txt
echo "INDEXING ($i)th directory completed "
fi
done
Может кто-нибудь сказать мне, что не так с этим сценарием?мне сначала нужно сделать #! / bin / bash?Кроме того, могу ли я nohup этот скрипт так, как он написан, или мне нужно удалить nohup в операторах if-else?Я действительно не знаю весь синтаксис if-else и циклов for bash ... извините, если это такой простой вопрос.Я благодарен за помощь!
Редактировать (публикуя обновление из комментариев)
Я пытаюсь проиндексировать каталог с именем актеров, содержащий 1000 подкаталогов с файлами внутри.Java-программа будет работать, но она не сможет обработать все файлы в этих 1000 каталогах (около 1,8 миллиона).Я хочу написать скрипт, который будет делать это в подкаталоге за раз.
Я ssh'ing на сервер, чтобы сделать это, но это займет некоторое время, поэтому я хочу, чтобы он не отбрасывался.Я не могу просто запустить java-программу для всего каталога, потому что она исчерпывает кучу памяти.Это не самый эффективный код Java, но я работаю над другим решением этой проблемы, пока этот скрипт запускает подкаталог за раз.