美文网首页
【shell】获取上一个命令的执行结果

【shell】获取上一个命令的执行结果

作者: 87d6dc4b11a7 | 来源:发表于2024-12-12 15:23 被阅读0次

在 shell 编程中,要慎用 exit 0。首先必须弄清楚exit 0 不是 return 0, 区别在于 return 0用于函数中,表示函数执行成功并返回 0;而 exit 0 则表示当前程序执行成功并且直接退出当前执行脚本或程序。相反,return -1 表示函数执行失败返回错误; exit 1(或大于 1)表示程序执行失败并退出程序。exit 用来返回进程结束时的状态,一般在父shell中使用变量 $? 来获取子shell 的退出状态,判断子shell是否执行成功。

Shell脚本中,可以使用特殊变量$?来获取上一个命令的执行结果。如果上一个命令成功执行,$?会返回0;如果失败,则返回非0值。

  • exit 0 :正常运行程序并退出程序。使用echo $? 返回0,也就是说调用环境认为你的程序执行正常。
  • exit 1 :非正常运行导致退出程序,也可以是其他数字。系统程序对于程序运行错误是有约定含义的,不为 0 就表示程序运行出错。调用环境根据这个返回值,判断你的程序运行是否正常。
  • return :用于返回值。若在主函数中,则会退出函数并返回一个值。
#!/bin/bash
 
# 执行一个命令
ls /some/directory
 
# 获取上一个命令的执行结果
result=$?
 
# 根据执行结果进行判断
if [ $result -eq 0 ]; then
  echo "命令执行成功"
else
  echo "命令执行失败,退出码为: $result"
fi
$ sh test.sh
test  test.sh
命令执行成功
$ vi test.sh
$ sh test.sh
ls: cannot access './aa': No such file or directory
命令执行失败,退出码为: 2

相关文章

  • C语言执行shell命令(system exec popen p

    我们在C语言里面有时候需要执行一些shell命令,或者通过shell命令获取一些返回的数据。 无需返回执行结果 s...

  • MacOS获取系统版本号

    在shell中执行下面命令: 输出结果: 另外一个命令,也可以获取到版本信息: 输出: 如果只想获取版本号的话,可...

  • Go 执行命令行并实时打印输出

    golang执行命令 && 实时获取输出结果 背景 golang可以获取命令执行的输出结果,但要执行完才能够获取。...

  • vim学习 09——shell命令

    vim学习 09——shell命令 执行 shell 命令 :!shell命令 : 可以执行 shell 命令。 ...

  • Linux :常用命令的基础知识

    // 命令的基础知识 Shell 用户与内核交互的应用程序. shell <--- 输入命令/显示命令执行结果 ⬇...

  • Linux Shell编程

    Shell简介 Shell会执行用户输入的命令,并且在屏幕上显示执行的结果。 单从字面的意思上理解,Shell的本...

  • linux常用命令

    统计 在shell中执行sql 执行sql 并将结果写入文件 将shell脚本加入后台执行如将上述命令写入sql....

  • echo $?

    $? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。 退出状态是一个数字,一般情况下...

  • Linux脚本中几种特殊的参数变量

    在shell脚本中,可以通过$来获取执行脚本命令传过来的参数,比如: $0 获取命令(脚本)本身(如 ./test...

  • Python中调用shell命令如何设置超时时间?

    有时候我们在写Python脚本的时候程序中可能需要调用shell命令,有的shell命令执行之后立即返回结果,但有...

网友评论

      本文标题:【shell】获取上一个命令的执行结果

      本文链接:https://www.haomeiwen.com/subject/kbohsjtx.html