Если вы хотите использовать средство просмотра KDE в Firefox, вы можете использовать плагин KParts. Для этого установите пакет kpartsplugin. Из описания пакета:
Это программное обеспечение реализует плагин для Netscape-совместимых браузеров в средах Unix. Этот плагин использует технологию KParts KDE для встраивания файловых зрителей (например, для файлов PDF) в не-KDE-браузеры. Тестируемые браузеры включают в себя как Mozilla Firefox, так и Opera, а также знают, как работать с Chrome и Arora. С помощью этого плагина вы можете просматривать файлы PDF в Firefox, используя Okular как встроенный плагин.Здесь я открыл PDF-документ в Firefox с помощью встроенного Okular KPart:
#! / bin / bash sek = 60 эхо "60 секунд ожидания!" echo -n «One Moment please», в то время как [$ sek -ge 1] do echo -n «$ sek» sleep 1 sek = $ [$ sek-1] echo -en "\ b \ b" done echo echo "готов! "
#! / bin / bash sek = 60 эхо "60 секунд ожидания!" echo -n «One Moment please», в то время как [$ sek -ge 1] do echo -n «$ sek» sleep 1 sek = $ [$ sek-1] echo -en "\ b \ b" done echo echo "готов! "
#! / bin / bash sek = 60 эхо "60 секунд ожидания!" echo -n «One Moment please», в то время как [$ sek -ge 1] do echo -n «$ sek» sleep 1 sek = $ [$ sek-1] echo -en "\ b \ b" done echo echo "готов! "
#! / bin / bash sek = 60 эхо "60 секунд ожидания!" echo -n «One Moment please», в то время как [$ sek -ge 1] do echo -n «$ sek» sleep 1 sek = $ [$ sek-1] echo -en "\ b \ b" done echo echo "готов! "
#! / bin / bash sek = 60 эхо "60 секунд ожидания!" echo -n «One Moment please», в то время как [$ sek -ge 1] do echo -n «$ sek» sleep 1 sek = $ [$ sek-1] echo -en "\ b \ b" done echo echo "готов! "
Старый формат $ [выражение] устарел и будет удален в следующих версиях bash.
. Вместо этого используйте POSIX $ ((выражение))
или команду ((
. Например, sek = $ ((sek - 1))
или ((sek = sek - 1))
или ((sek--))
.
– geirha
4 February 2011 в 03:49
В основном то же самое, что и ответ aneeshep, но использует Return (\r), а не Backspace (\b), потому что мы не знаем, будет ли длина всегда одинаковой, например. если $sek < 10.
Кроме того, ваш первый echo должен использовать $sek, а не жесткий код 60.
Наконец, обратите внимание на пробел после ... .
#!/bin/bash
sek=60
echo "$sek Seconds Wait!"
while [ $sek -ge 1 ]
do
echo -ne "One Moment please $sek ... \r"
sleep 1
sek=$[$sek-1]
done
echo
echo "ready!"
С помощью bash вы можете использовать специальную переменную SECONDS.
#BASH
SECONDS=0;
while sleep .5 && ((SECONDS <= 60)); do
printf '\r%s: %2d' "One moment please" "$((60-SECONDS))"
done
printf '\n'
Это то, что я придумал после прочтения здесь и немного больше, один лайнер:
SEC=101;for i in `seq $SEC -1 1`;do printf "\rNext in: %`expr length $SEC`ds" "$i";sleep 1;done;echo
Более читаемый:
#!/bin/bash
SEC=101
for i in `seq $SEC -1 1`;do
printf "\rNext in: %`expr length $SEC`ds" "$i";
sleep 1;
done
echo
Где можно установить SEC к любому положительному целому числу, и printf позаботится о соответствующем заполнении. Протестировано под Ubuntu и cygwin.
Таймер обратного отсчета:
MIN=1 && for i in $(seq $(($MIN*60)) -1 1); do echo -n "$i, "; sleep 1; done; echo -e "nnMessage"
и «нормальный» секундомер:
START=$( date +%s ); while true; do CURRENT=$( date +%s ) ; echo $(( CURRENT-START )) ; sleep 1 ; echo -n ; done
control + c, чтобы остановить
С помощью bash вы можете использовать специальную переменную SECONDS.
#BASH
SECONDS=0;
while sleep .5 && ((SECONDS <= 60)); do
printf '\r%s: %2d' "One moment please" "$((60-SECONDS))"
done
printf '\n'
Таймер обратного отсчета:
MIN=1 && for i in $(seq $(($MIN*60)) -1 1); do echo -n "$i, "; sleep 1; done; echo -e "nnMessage"
и «нормальный» секундомер:
START=$( date +%s ); while true; do CURRENT=$( date +%s ) ; echo $(( CURRENT-START )) ; sleep 1 ; echo -n ; done
control + c, чтобы остановить
В основном то же самое, что и ответ aneeshep, но использует Return (\r), а не Backspace (\b), потому что мы не знаем, будет ли длина всегда одинаковой, например. если $sek < 10.
Кроме того, ваш первый echo должен использовать $sek, а не жесткий код 60.
Наконец, обратите внимание на пробел после ... .
#!/bin/bash
sek=60
echo "$sek Seconds Wait!"
while [ $sek -ge 1 ]
do
echo -ne "One Moment please $sek ... \r"
sleep 1
sek=$[$sek-1]
done
echo
echo "ready!"
В дополнение к подходам \r или \b можно использовать управляющий символ \033[2K, который сообщает терминалу очистить всю строку. Преимущество этого по сравнению с \b заключается в том, что вам не нужно сопоставлять число \b с количеством символов, которое вы хотите удалить, и по сравнению с \r на экране не будут присутствовать символы, торчащие на экране если новая строка короче старой.
Ниже приведен пример того, как он может быть применен к этому вопросу, а управляющий символ является примером связанного приложения для создания вывода, аналогичного загрузочным сообщениям. В этом конкретном примере таймер исчезнет после достижения 0-й секунды, а линия таймера будет заменена на «Готов!». фраза
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
printf "One moment please: %d" "$sek"
sleep 1
printf "\r%b" "\033[2K"
done
echo "Ready!"
Другой альтернативой было бы использование команды dialog для создания простых диалогов в командной строке. Диалог останется на экране в течение всего таймера и обновится с помощью цикла, и к моменту его завершения таймер будет заменен на сообщение «Готово! Нажмите, чтобы выйти»:
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
echo "$sek" | dialog --progressbox "Please wait" 10 25
sleep 1
done
dialog --msgbox "Ready! Press <OK> to finish" 10 25
Это то, что я придумал после прочтения здесь и немного больше, один лайнер:
SEC=101;for i in `seq $SEC -1 1`;do printf "\rNext in: %`expr length $SEC`ds" "$i";sleep 1;done;echo
Более читаемый:
#!/bin/bash
SEC=101
for i in `seq $SEC -1 1`;do
printf "\rNext in: %`expr length $SEC`ds" "$i";
sleep 1;
done
echo
Где можно установить SEC к любому положительному целому числу, и printf позаботится о соответствующем заполнении. Протестировано под Ubuntu и cygwin.
С помощью bash вы можете использовать специальную переменную SECONDS.
#BASH
SECONDS=0;
while sleep .5 && ((SECONDS <= 60)); do
printf '\r%s: %2d' "One moment please" "$((60-SECONDS))"
done
printf '\n'
Таймер обратного отсчета:
MIN=1 && for i in $(seq $(($MIN*60)) -1 1); do echo -n "$i, "; sleep 1; done; echo -e "nnMessage"
и «нормальный» секундомер:
START=$( date +%s ); while true; do CURRENT=$( date +%s ) ; echo $(( CURRENT-START )) ; sleep 1 ; echo -n ; done
control + c, чтобы остановить
В основном то же самое, что и ответ aneeshep, но использует Return (\r), а не Backspace (\b), потому что мы не знаем, будет ли длина всегда одинаковой, например. если $sek < 10.
Кроме того, ваш первый echo должен использовать $sek, а не жесткий код 60.
Наконец, обратите внимание на пробел после ... .
#!/bin/bash
sek=60
echo "$sek Seconds Wait!"
while [ $sek -ge 1 ]
do
echo -ne "One Moment please $sek ... \r"
sleep 1
sek=$[$sek-1]
done
echo
echo "ready!"
В дополнение к подходам \r или \b можно использовать управляющий символ \033[2K, который сообщает терминалу очистить всю строку. Преимущество этого по сравнению с \b заключается в том, что вам не нужно сопоставлять число \b с количеством символов, которое вы хотите удалить, и по сравнению с \r на экране не будут присутствовать символы, торчащие на экране если новая строка короче старой.
Ниже приведен пример того, как он может быть применен к этому вопросу, а управляющий символ является примером связанного приложения для создания вывода, аналогичного загрузочным сообщениям. В этом конкретном примере таймер исчезнет после достижения 0-й секунды, а линия таймера будет заменена на «Готов!». фраза
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
printf "One moment please: %d" "$sek"
sleep 1
printf "\r%b" "\033[2K"
done
echo "Ready!"
Другой альтернативой было бы использование команды dialog для создания простых диалогов в командной строке. Диалог останется на экране в течение всего таймера и обновится с помощью цикла, и к моменту его завершения таймер будет заменен на сообщение «Готово! Нажмите, чтобы выйти»:
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
echo "$sek" | dialog --progressbox "Please wait" 10 25
sleep 1
done
dialog --msgbox "Ready! Press <OK> to finish" 10 25
Это то, что я придумал после прочтения здесь и немного больше, один лайнер:
SEC=101;for i in `seq $SEC -1 1`;do printf "\rNext in: %`expr length $SEC`ds" "$i";sleep 1;done;echo
Более читаемый:
#!/bin/bash
SEC=101
for i in `seq $SEC -1 1`;do
printf "\rNext in: %`expr length $SEC`ds" "$i";
sleep 1;
done
echo
Где можно установить SEC к любому положительному целому числу, и printf позаботится о соответствующем заполнении. Протестировано под Ubuntu и cygwin.
С помощью bash вы можете использовать специальную переменную SECONDS.
#BASH
SECONDS=0;
while sleep .5 && ((SECONDS <= 60)); do
printf '\r%s: %2d' "One moment please" "$((60-SECONDS))"
done
printf '\n'
Таймер обратного отсчета:
MIN=1 && for i in $(seq $(($MIN*60)) -1 1); do echo -n "$i, "; sleep 1; done; echo -e "nnMessage"
и «нормальный» секундомер:
START=$( date +%s ); while true; do CURRENT=$( date +%s ) ; echo $(( CURRENT-START )) ; sleep 1 ; echo -n ; done
control + c, чтобы остановить
В основном то же самое, что и ответ aneeshep, но использует Return (\r), а не Backspace (\b), потому что мы не знаем, будет ли длина всегда одинаковой, например. если $sek < 10.
Кроме того, ваш первый echo должен использовать $sek, а не жесткий код 60.
Наконец, обратите внимание на пробел после ... .
#!/bin/bash
sek=60
echo "$sek Seconds Wait!"
while [ $sek -ge 1 ]
do
echo -ne "One Moment please $sek ... \r"
sleep 1
sek=$[$sek-1]
done
echo
echo "ready!"
В дополнение к подходам \r или \b можно использовать управляющий символ \033[2K, который сообщает терминалу очистить всю строку. Преимущество этого по сравнению с \b заключается в том, что вам не нужно сопоставлять число \b с количеством символов, которое вы хотите удалить, и по сравнению с \r на экране не будут присутствовать символы, торчащие на экране если новая строка короче старой.
Ниже приведен пример того, как он может быть применен к этому вопросу, а управляющий символ является примером связанного приложения для создания вывода, аналогичного загрузочным сообщениям. В этом конкретном примере таймер исчезнет после достижения 0-й секунды, а линия таймера будет заменена на «Готов!». фраза
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
printf "One moment please: %d" "$sek"
sleep 1
printf "\r%b" "\033[2K"
done
echo "Ready!"
Другой альтернативой было бы использование команды dialog для создания простых диалогов в командной строке. Диалог останется на экране в течение всего таймера и обновится с помощью цикла, и к моменту его завершения таймер будет заменен на сообщение «Готово! Нажмите, чтобы выйти»:
#!/bin/bash
sek=60
echo "60 Seconds"
while ((sek--)); do
echo "$sek" | dialog --progressbox "Please wait" 10 25
sleep 1
done
dialog --msgbox "Ready! Press <OK> to finish" 10 25
Это то, что я придумал после прочтения здесь и немного больше, один лайнер:
SEC=101;for i in `seq $SEC -1 1`;do printf "\rNext in: %`expr length $SEC`ds" "$i";sleep 1;done;echo
Более читаемый:
#!/bin/bash
SEC=101
for i in `seq $SEC -1 1`;do
printf "\rNext in: %`expr length $SEC`ds" "$i";
sleep 1;
done
echo
Где можно установить SEC к любому положительному целому числу, и printf позаботится о соответствующем заполнении. Протестировано под Ubuntu и cygwin.
С помощью bash вы можете использовать специальную переменную SECONDS.
#BASH
SECONDS=0;
while sleep .5 && ((SECONDS <= 60)); do
printf '\r%s: %2d' "One moment please" "$((60-SECONDS))"
done
printf '\n'