Как я могу написать крошечную оболочку Bash script для повторения действия каждые 5 секунд?

Я хочу скопировать файл из одного места в другое каждые пять секунд. Я не хочу настраивать cronjob, потому что это только временное и должно быть полностью под моим контролем.

Могу ли я написать .sh, который это сделает?

(Im на Mac OS X.)

Ответ 1

Команда watch - хороший вариант. Если вам нужно больше контроля, вы можете использовать цикл while:

while [ 1 ]
do
  cp source dest
  sleep 5s
done

Ответ 2

while true
do
    cp file /other/location
    sleep 5
done

Вам даже не нужно писать script для этого, просто введите while true; do cp file /other/location; sleep 5; done в приглашении bash.

Ответ 3

Возможно смотреть:

watch -n 5 date

Ответ 5

не уверен, что это сработает, но вы можете попробовать его, в основном это бесконечный цикл, поэтому вам придется вручную завершать script или добавлять фильтр, например, в ключ q, когда нажаты наборы copyFiles на 0

copyFile = 1
while [ ${copyFile} -eq 1 ]
do
    echo "Copying file..."
    cp file /other/location
    echo "File copied.  Press q to quit."
    read response
    [ "$response" = "q" ] && copyFile = 0
    sleep 5
done