У меня есть вопрос об этом. У меня есть он как программа запуска.
Если загрузка закончится, или я удаляю .part файлы, то сценарий затем приостановит?
for file in /home/andy/Downloads/*.part ; do
if [[ -f $file ]]; then
echo "File download in progress."
echo "Computer can not suspend until download is complete."
echo "Now exiting."
sleep 2
break
fi
done
echo "This script will suspend computer in 5 minutes if there is no mouse or keyboard activity."
while :; do
if (( $(xprintidle) >= 300000 )); then
systemctl suspend
fi
sleep 0.5
done
26.03.19 18:00 я попробовал код на основе ответа Sergiy и получил ошибку:
line 5: [: too many arguments
Код
#!/bin/bash
old=$(du -sh /home/andy/Downloads/myfile.iso)
while true; do
new=$(du -sh /home/andy/Downloads/myfile.iso)
if [ $old -eq $new ] ;
then
break
fi
old=$new
xdotool getactivewindow key Ctrl
sleep 5
done
line 5: [: too many arguments
Сценарий все еще позволит, чтобы компьютер приостановил, потому что for
цикл не отправляет сигнала на GUI и не генерирует события GUI.
Что я делаю иногда находка файл, который я загружаю и монитор, если его размер изменяется, одновременно выпуская пресс-мероприятие клавиши Ctrl с xdotool
. Другими словами, это могло быть чем-то как
old=$(du -sh ~/Downloads/myfile.iso)
while true; do
new=$(du -sh ~/Downloads/myfile.iso)
if [ $old -eq $new ] ; then
break
fi
old=$new
xdotool getactivewindow key Ctrl
sleep 5
done
Что касается второго цикла в Вашем сценарии, это в порядке.