zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Bash执行命令显示进度和结果

2023-04-18 12:35:46 时间

文章目录

Bash执行命令显示进度和结果

1.代码

#!/bin/bash
#*************************************************************
#Author: yangruitao
#Date:  2021-02-01
#FileName:      system_check.sh
#*************************************************************
#color.sh是我另一篇博客介绍的内容,感兴趣的朋友可以看看
. color.sh 

process() {
    pid=$1
    i=0
    while kill -0 $pid 2>/dev/null
    do
        i=$(((i+1) % 4))
        printf "."
        sleep 1
    done
}

cmd_with_process() {
    $1 &
    pid=$!
    process $pid &
    wait $pid
    if [ $? -eq 0 ]; then
        echo_green "[ok]"
    else
        echo_red "[fail]"
    fi
}

case $1 in
    check_cmd)
        shift
        cmd_with_process "$*"
    ;;
    *)
        echo_blue "Usage $0 [check_services|check_cmd]"
        echo_yellow "Forexample: $0 check_cmd sleep 10"
        cmd_with_process "sleep 10"
    ;;
esac

2.测试效果