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为$代码>