コマンドラインでタスクが完了するまでスピナーを表示するにはどうすればよいですか?つまり、スクリプトが実行中でスクリプトの実行中にスピナーが表示され、スクリプトが完了するとスピナーが消えるようにするにはこれが機能します。
一般的なスピナーコードは次のとおりです。
i=1
sp="/-\|"
echo -n ' '
while true
do
printf "\b${sp:i++%${#sp}:1}"
done
コマンドの実行中にスピナーを表示し、コマンドが操作を完了すると消えるように、古いスピナーコードをコマンドにリンクするにはどうすればよいですか?ループにコマンドを含めると、スピナーと一緒にループが発生します。それでは、この場合の解決策は何ですか?
ベストアンサー1
while
ループが実際のシャットダウンコマンドを監視するようにします。 Linux環境にはPIDごとに/ procエントリがあると想定していますが、他の方法でそれらを分割することもできます。
#!/bin/bash
# your real command here, instead of sleep
sleep 7 &
PID=$!
i=1
sp="/-\|"
echo -n ' '
while [ -d /proc/$PID ]
do
printf "\b${sp:i++%${#sp}:1}"
done