如何检查最后 k 条命令是否成功运行

如何检查最后 k 条命令是否成功运行

我正在运行几个 bash 命令,想检查它们是否最后都成功运行了。我该怎么做?
这是我尝试的。

$ man # command 1 with exit status 1
What manual page do you want?

$ res1=$? # command 2 with exit status 0
# this also stores exit code of previous code i.e 1

$ res2=$? # storing exit code of previous command i.e 0

# Now I want to check if all previous commands worked fine with their exit codes
$ echo $res1 && $res
1
0: command not found

我目前的方法有什么错误。或者应该怎么做才正确?有没有更好的方法可以将其推广到最后 k 个命令。
提前致谢。

答案1

我也遇到了一些问题

我会用这种方法解决我的问题

首先,我编写了一个函数来检查我在脚本中运行的命令的状态


function show_process_status() {
    if [ $? == 0 ]; then 
        echo $1
    else
        echo $2
        break
    fi
}

然后在我的脚本中,我在运行任何命令之后调用此函数,例如:

function update_system (){
    echo "start updating system"
    sudo apt-get update -y
    show_process_startus "repos updated successful" "An error occurred on updating repos"
    if [[ $1 == "full" ]]; then
        sudo apt-get dist-upgrade -y
        show_process_startus "system updated successful" "An error occurred on updating systems"
    elif [[ $1 == "fix" ]]; then 
        sudo apt-get update --fix-missing
        show_process_startus "update fix missing successful" "An error occurred on fix missing"
        sudo apt-get update
    fi
}

show_process_status函数中我得到了两个参数,第一个参数在代码运行并成功退出时打印,第二个参数在命令退出不成功时使用。

相关内容