it-swarm-ja.com

ユーザーがbashで待機できるように表示を追加します

一種の「お待ちください」ローリング表示を文字で表示するbashのかなりばかげたコードを探しています:-\ | /

最初の問題は、このことの名前がわからないため、見つけるのが少し難しいことです。もう1つは、スクリプトレットを提供していただけませんか。

前もって感謝します、

オリヴィエ

2
Olivier M.

貴重な助けをありがとう。私はすべてのコードを調べましたが、それらはすべて私が行っていることに対してかなり長いようです。

それに基づいて、私はあなたと共有している小さなコードをやり直しました。

#! /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行を削除すると、スクリプトに簡単に挿入でき、最終的にはもう少し縮小できます。唯一のことは、現在永久に実行されている状態についてですので、停止するためにあなた自身の状態を出さなければなりません。

お役に立てば幸いです。 ;-)

2
Olivier M.

それらは「スピナー」と呼ばれます。 Linux Journalには article とサンプルコードがあります。

1
Teun Vink

それらは「Throbbers」とも呼ばれます。実装とその使用方法の説明については、 http://fitnr.com/showing-a-bash-spinner.html (免責事項:自分でテストしたことはありませんが、見落としていました。それは合理的に見えます)

0
Thomas M

「お待ちください」プロセスバー/スピナーについて、以下のコードを試してください。

 #!/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

それは私のために働いています...

0
Ranjithkumar T