2
{ while IFS=';' read  u1 p1 u2 p2; do
            imapsync/imapsync --usecache --host1 secure.emailsrvr.com --user1 "$u1" --password1 "$p1" \
                     --host2 imap.gmail.com --ssl2 --user2 "$u2" --password2 "$p2" ...
     done ; } < users1-33.txt

このスクリプトを継続的に実行して、完了すると最初からやり直すにはどうすればよいですか?

4

3 に答える 3

4

多くの UNIXy システムにはwatch、コマンドを繰り返し実行する (デフォルトでは 2 秒ごと) というツールがあります。は標準の POSIX ツールでwatchはありませんが、それを持っているか、インストールできる場合は、本質的に求めていることを達成するための非常に簡単な方法です。コードをファイルに入れて、次のように監視します。

watch bash -c your_script
于 2012-11-13T20:46:04.070 に答える
3

関数でラップして、それを繰り返してみてください。

function go()
{
    { while IFS=';' read  u1 p1 u2 p2; do
            imapsync/imapsync --usecache --host1 secure.emailsrvr.com --user1 "$u1" --password1 "$p1" \
                     --host2 imap.gmail.com --ssl2 --user2 "$u2" --password2 "$p2" ...
     done ; } < users1-33.txt

}

while true
do
    go
done

またはgo()、別のファイルから参照できます。

   #!/bin/sh

   . /the/original/source_file.sh

   go
于 2012-11-13T20:39:25.810 に答える
1

スクリプトをcrontabに入れて、毎分実行することを検討しましたか?

たとえば、Debianベースのシステムです。(ubuntu)

crontab -e

# m h  dom mon dow   command
*/1 * * * * /usr/local/bin/scriptToRun.sh

スクリプトを毎分実行します

cronの詳細

于 2012-11-13T20:40:25.650 に答える