приостановить программу (сценарий bash) на определенное время

Обходной путь для GNOME до версии 3.11 (, например. GNOME 3.8 в Ubuntu 14.04):

gsettings set org.gnome.settings-daemon.plugins.remote-display active false
gsettings set org.gnome.desktop.interface enable-animations false
1
25.04.2020, 11:05
1 ответ

Может быть, заключить его в цикл whileи проверить, уложитесь ли вы в запланированное время.

#!/bin/bash                                 

SOON=$(($(date +%s) + 1800))                                   
while [[ "$NOW" -le "$SOON" ]]; do                         
    sleep 1                            
    NOW=$(date +%s)                                     
done         

Идея даты также может быть найдена в этом ответе Чепнера . +%sзаставляет dateформатировать дату в секундах с 1970 года. $(( ))просто арифметически добавляет количество секунд. Замените 1800 на любое количество (, вероятно, лучше всего протестировать с небольшим количеством и посмотреть, работает ли оно ). sleep 1заставляет скрипт проверять условие каждую секунду.

2
19.03.2021, 02:26

Теги

Похожие вопросы