#!/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嗎?另外,我可以按照它的寫法來禁用這個腳本嗎?或者我是否必須刪除if-else語句中的nohup?我真的不知道if-else和for bash的所有語法......對不起,如果這是一個簡單的問題。我感謝幫助!尷尬簡單的bash腳本幫助
編輯(從發佈評論的更新)
我試圖索引叫演員的目錄,1000個子目錄裏面他們的文件。 java程序將運行,但它不能處理這1000個目錄中的所有文件(大約180萬)。我想寫一個腳本,一次執行它的子目錄。
我ssh'ing到服務器做到這一點,但它會需要一段時間,所以我希望它不會下降。我不能只在整個目錄上運行java程序,因爲它沒有堆內存。這不是最有效的java代碼,但是我正在研究解決這個問題的另一個解決方案,而這個腳本一次運行子目錄。
首先,你想做什麼?只有這樣我們才能說它有什麼問題。 –
你有沒有嘗試提供絕對路徑,而不是相對路徑(使用'〜')到程序中?另外,可以澄清目前的腳本有什麼問題?注 - nohup很好,它應該工作;你可能希望在末尾附加'&',這樣它將在後臺運行而不是阻塞。最後,請使用更多信息更新問題,而不是將它們發佈在評論中。 –
Ohhh對不起,我只是添加了〜因爲它們都在不同的文件夾,我不想混亂的屏幕:)我想我會嘗試Kerrek的答案。 – ae0709