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