我希望能夠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