#!/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 这个脚本,还是我必须删除 if-else 语句中的 nohup?我真的不知道 bash 的 if-else 和 for 循环的所有语法......对不起,如果这是一个如此简单的问题。感谢您的帮助!
编辑(从评论发布更新)
我正在尝试索引一个名为 actor 的目录,其中包含 1000 个包含文件的子目录。java 程序会运行,但它无法处理这 1000 个目录(约 180 万个)中的所有文件。我想编写一个脚本,一次执行子目录。
我正在通过 ssh 进入服务器来执行此操作,但这需要一段时间,所以我希望它不会丢失。我不能只在整个目录上运行 java 程序,因为它耗尽了堆内存。它不是最有效的 java 代码,但是当这个脚本一次运行子目录时,我正在研究另一个解决该问题的方法。