我正在尝试在执行Shell命令集时放置一个等待视图。
例如:
myfunction () {
# some commands
# npm install
# kill some
#...
}
该函数正在运行时,我想显示一个动画。动画应在功能过程完成后结束。
myfunction # Start myFunction
myAnimation # Start myAnimation
# finish myFunction
# finish myAnimation
我正在尝试使用此nyancat动画https://github.com/klange/nyancat
答案 0 :(得分:1)
假设您已按照github上的说明构建了 nyancat ,并将其放置在PATH
上的某个位置:
worker() {
# some commands
# npm install
# kill some
#...
}
pidWorker=-1
myFunction() {
worker > /dev/null 2>&1 &
pidWorker=$!
}
observeMyFunction() {
while kill -0 $pidWorker 2>/dev/null
do
sleep 1
done
pkill nyancat
# clear the screen if you want, e.g. by using: printf "\033c"
}
myAnimation() {
observeMyFunction &
nyancat # maybe adapt the path
}
myFunction
myAnimation
基本思想来自this blog。 此答案已根据更改的要求进行了编辑
答案 1 :(得分:0)
您可以想象使用wait
,它正在等待后台进程执行结束。
然后kill
可用于终止myAnimation
函数。
尝试一下:
myfunction &
myfunction_pid=$!
myAnimation &
wait "${myfunction_pid}" # wait the end of the myfunction running in background
printf "myfunction is done\n"
kill %% # send a signal to terminate all remaining background jobs
# started by the current bash process: i.e. myAnimation