2

Я ищу довольно глупый кусок кода для bash, который будет отображать своего рода "пожалуйста, подождите", с символами: - \ | /

Первая проблема заключается в том, что я не знаю названия этой вещи, поэтому ее немного сложно найти, а другая - не могли бы вы предоставить скриптлет, пожалуйста?

Заранее спасибо,

Оливье

4 ответа4

2

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

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

#! /bin/bash
state=1
delay=0.5
printf "-"
sleep $delay

while [ 1 ]
do
        printf "\b"
        case $state in
                0) printf "-";;
                1) printf "\\";;
                2) printf "|";;
                3) printf "/";;
        esac
        if [ $state -eq 3 ]
        then
                state=0;
        else
                state=$((state+1));
        fi
        sleep $delay
done

Конечно, это может работать как самостоятельный код, но вынуть строку bash, и вы можете легко вставить ее в сценарий и, в конечном итоге, уменьшить его еще больше. Единственное, что касается состояния, которое сейчас работает навсегда, так что придется выйти из своего состояния для остановки.

Надеюсь, вы найдете это полезным. ;-)

1

Их называют «прядильщиками». В Linux Journal есть статья с примером кода.

0

Их также называют «Throbbers». Для реализации и объяснения, как его использовать, см. Http://fitnr.com/showing-a-bash-spinner.html (отказ от ответственности: я сам не проверял, но пропустил, и это выглядит разумно)

0

Не могли бы вы попробовать приведенный ниже код для "пожалуйста, подождите" процесс бар / счетчики.

 #!/bin/bash
 echo -e "Please wait ..."
 while true;
 do
 echo -ne '-\r'
 sleep .2
 echo -ne '\\\r'
 sleep .2
 echo -ne '|\r'
 sleep .2
 echo -ne '/''\r'
 sleep .2
 echo -ne '-\r'
 done

или же

пытаться

 #!/bin/bash
 echo -n "Please wait..."
 while true
 do
      echo -n "."
      sleep .2
 done

Это работает для меня ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .