我希望能够echo
一些东西(即微调),只要一个命令(数据库转储是准确的),仍然在运行。直到command_is_finished;做
因为现在,就好像15分钟:“我的剧本还在运行吗?”
在bash中的建议? while
? until
?
感谢,
我希望能够echo
一些东西(即微调),只要一个命令(数据库转储是准确的),仍然在运行。直到command_is_finished;做
因为现在,就好像15分钟:“我的剧本还在运行吗?”
在bash中的建议? while
? until
?
感谢,
while
- 并检查正在运行的进程的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
"[email protected]" &
echo -n "Running '[email protected]'... "
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在'$!' – 2010-07-29 14:51:51