我对shell脚本很陌生,我使用下面的代码来运行spring引导,但是我需要一个进度条来显示启动应用程序的进度。
我已经尝试了回声“等待开始”,但需要有一个进度条显示。
cd /var/develop/eureka-discovery-services/target
pwd
java -jar eureka-discovery-services.jar &
while ! nc -z localhost 5001 ; do
echo "Waiting to start"
sleep 2
done
cd /cd /var/develop/api-services/target
pwd
java -jar api-services.jar &
while ! nc -z localhost 6001 ; do
echo "Waiting to start"
sleep 2
done
echo "All services started Successfully !!!"
发布于 2019-08-18 19:04:06
因此,基本上,这将是一个小黑客,因为你没有办法检查你真正的进展,你开始的过程。它在断电之间处于更多的状态。但是,如果您仍然想要制作进度条,则此代码可以完成以下工作:
#!/bin/bash
function ProgressBar {
let _progress=(${1}*100/${2}*100)/100
let _done=(${_progress}*4)/10
let _left=40-$_done
_fill=$(printf "%${_done}s")
_empty=$(printf "%${_left}s")
# Progress : [########################################] 100%
printf "\rProgress : [${_fill// /\#}${_empty// /-}] ${_progress}%%"
}
# Proof of concept
work1() {
sleep 10
nc -lp 5001
}
work2() {
sleep 15
nc -lp 6001
}
work1 &
progress=1
while ! nc -z localhost 5001 ; do
ProgressBar ${progress} 100
let progress=progress+1
sleep 0.3
done
ProgressBar 100 100
echo ""
echo "Work 1 done"
work2 &
progress=1
while ! nc -z localhost 6001 ; do
ProgressBar ${progress} 100
let progress=progress+1
sleep 0.3
done
ProgressBar 100 100
echo ""
echo "Work 2 done"
echo "All services started Successfully !!!"
再一次,它更像微软风格的进步,当nc报告成功时,我们将作业从x传递到100。你可以调整速度sleep 0.x
https://stackoverflow.com/questions/57549797
复制相似问题