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

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

могу я написать .sh, что сделает это?

(Я на Mac OS X.)

5 ответов


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

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

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

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


возможно посмотреть будет делать:

watch -n 5 date

использовать .

источник


Не уверен, что это сработает, но вы можете попробовать, в основном это бесконечный цикл, поэтому вам придется завершить скрипт вручную или добавить фильтр для ключа 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