Bash 直到命令完成;做

Bash 直到命令完成;做,bash,shell,Bash,Shell,只要命令(确切地说是数据库转储)仍在运行,我希望能够echo一些东西(例如微调器) 因为现在,就像15分钟的“我的脚本还在运行吗?” bash中的建议而直到 谢谢,,同时检查正在运行的进程的PID是否仍在运行。您可以使用脚本中的$?获取PID: #!/bin/bash your-prog & while jobs %?your-prog > /dev/null 2>&1; do echo -ne '/\r'; sleep 1; echo -ne '\\\r'; sle

只要命令(确切地说是数据库转储)仍在运行,我希望能够
echo
一些东西(例如微调器)

因为现在,就像15分钟的“我的脚本还在运行吗?”

bash中的建议<代码>而<代码>直到


谢谢,

,同时检查正在运行的进程的PID是否仍在运行。您可以使用脚本中的
$?

获取PID:

#!/bin/bash
your-prog &
while jobs %?your-prog > /dev/null 2>&1; do echo -ne '/\r'; sleep 1; echo -ne '\\\r'; sleep 1; done

这里有一个小脚本,它显示一个微调器,直到给它的命令完成为止

#!/bin/bash

if [[ -z "$*" ]] ; then
    echo "Usage:  $0 command [args] ..."
    exit 0
fi

"$@" &
echo -n "Running '$@'... "

BACKSPACE='\010'
SPINNER='|/-\'
INDEX=0
while kill -0 $! 2>/dev/null ; do
    echo -n -e "${SPINNER:$INDEX:1}"
    sleep 0.2
    (( INDEX = ($INDEX + 1) % 4 ))
    echo -n -e "$BACKSPACE"
done
echo -e "${BACKSPACE}done."
用法示例:

$ ./spinner sleep 3
Running 'sleep 3'... [spinner displayed here]
过了一会儿:

$ ./spinner sleep 3
Running 'sleep 3'... done.
$

(我的bash脚本编写方法基于反复试验,因此非常欢迎改进此脚本的建议。)

假设此过程是在后台启动的,则PID为
$