返回顶部
首页 > 资讯 > 操作系统 >Shell退出状态的使用
  • 746
分享到

Shell退出状态的使用

Shell退出状态 2022-06-04 23:06:50 746人浏览 薄情痞子
摘要

每一条 shell 命令,不管是 Bash 内置命令(例如 cd、echo),还是外部的 linux 命令(例如 ls、awk),还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(

每一条 shell 命令,不管是 Bash 内置命令(例如 cd、echo),还是外部的 linux 命令(例如 ls、awk),还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(使用)它的程序,这就是命令的退出状态(exit statu)。

很多 Linux 命令其实就是一个C语言程序,熟悉C语言的读者都知道,main() 函数的最后都有一个return 0,如果程序想在中间退出,还可以使用exit 0,这其实就是C语言程序的退出状态。当有其它程序调用这个程序时,就可以捕获这个退出状态。

if 语句的判断条件,从本质上讲,判断的就是命令的退出状态。

按照惯例来说,退出状态为 0 表示“成功”;也就是说,程序执行完成并且没有遇到任何问题。除 0 以外的其它任何退出状态都为“失败”。

之所以说这是“惯例”而非“规定”,是因为也会有例外,比如 diff 命令用来比较两个文件的不同,对于“没有差别”的文件返回 0,对于“找到差别”的文件返回 1,对无效文件名返回 2。

编程经验的读者请注意,Shell 的这个部分与你所熟悉的其它编程语言正好相反:在C语言、c++、java、python 中,0 表示“假”,其它值表示“真”。

在 Shell 中,有多种方式取得命令的退出状态,其中 $? 是最常见的一种。上节《Shell if else》中使用了 (()) 进行数学计算,我们不妨来看一下它的退出状态。请看下面的代码:


#!/bin/bash
read a
read b
(( $a == $b ));
echo "退出状态:"$?

运行结果1:
26
26
退出状态:0

运行结果2:
17
39
退出状态:1

退出状态和逻辑运算符的组合

Shell if 语句的一个神奇之处是允许我们使用逻辑运算符将多个退出状态组合起来,这样就可以一次判断多个条件了。

Shell 逻辑运算符

运算符 使用格式 说明
&& expression1 && expression2 逻辑与运算符,当 expression1 和 expression2 同时成立时,整个表达式才成立。

如果检测到 expression1 的退出状态为 0,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是不成立的,检测了也是多此一举。
|| expression1 || expression2 逻辑或运算符,expression1 和 expression2 两个表达式中只要有一个成立,整个表达式就成立。

如果检测到 expression1 的退出状态为 1,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是成立的,检测了也是多此一举。
! !expression 逻辑非运算符,相当于“取反”的效果。如果 expression 成立,那么整个表达式就不成立;如果 expression 不成立,那么整个表达式就成立。

【实例】将用户输入的 URL 写入到文件中。


#!/bin/bash
read filename
read url
if test -w $filename && test -n $url
then
  echo $url > $filename
  echo "写入成功"
else
  echo "写入失败"
fi

在 Shell 脚本文件所在的目录新建一个文本文件并命名为 urls.txt,然后运行 Shell 脚本,运行结果为:

urls.txt↙
Http://jb51.net/shell/↙
写入成功

test 是 Shell 内置命令,可以对文件或者字符串进行检测,其中,-w选项用来检测文件是否存在并且可写,-n选项用来检测字符串是否非空。下节《Shell test》中将会详细讲解。

>表示重定向,默认情况下,echo 向控制台输出,这里我们将输出结果重定向到文件。

到此这篇关于Shell退出状态的使用的文章就介绍到这了,更多相关Shell退出状态内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: Shell退出状态的使用

本文链接: https://lsjlt.com/news/21308.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell退出状态的使用
    每一条 Shell 命令,不管是 Bash 内置命令(例如 cd、echo),还是外部的 linux 命令(例如 ls、awk),还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(...
    99+
    2022-06-04
    Shell 退出状态
  • 如何使用Shell退出状态
    如何使用Shell退出状态?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。退出状态和逻辑运算符的组合Shell if 语句的一个神奇之处是允许我们使用逻辑运算符将...
    99+
    2023-06-06
  • Shell退出状态码的方法
    这篇文章主要讲解了“Shell退出状态码的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell退出状态码的方法”吧!Shell 中运行的命令会使用0-255之间的整数值,作为退出状态...
    99+
    2023-06-09
  • Shell退出状态的用法是什么
    这篇文章主要介绍“Shell退出状态的用法是什么”,在日常操作中,相信很多人在Shell退出状态的用法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell退出状态的用法是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-09
  • Shell退出状态码及其应用详解
    Shell 中运行的命令会使用0-255之间的整数值,作为退出状态码,并以此来告知shell该命令执行的状态。通常情况下,约定0代表命令成功结束,非0代表程序非正常退出。 典...
    99+
    2022-06-04
    Shell退出状态码 Shell状态码
  • Shell程序退出状态码的命令详解
    目录程序退出状态码前言状态码简介退出码表实例说明退出码——1shell内部操作失败——退出码2退出码126命令没有找到——退出码127信号值&mda...
    99+
    2024-04-02
  • hbase shell状态下回退键不好用 (scureCRT)
    SecureCRT选项-->会话选项终端-->仿真,右侧选择Linux如果还是不能使用回退功能,则需要如下配置选择终端--仿真--映射键,两个都打勾。Well Done!!! ...
    99+
    2024-04-02
  • 详解bash中的退出状态机制
    程序的退出状态 当一个程序结束时会向父进程报告自己的退出状态( exit status ). 通过传递 int 类型的变量给库函数 exit 或系统调用 _exit 可以设置当前程序的退出状态, 在 linux 中, ...
    99+
    2022-06-04
    bash 退出状态 bash 退出
  • 电脑如何退出脱机状态
    要将电脑从脱机状态恢复到在线状态,可以按照以下步骤操作:1. 首先,检查电脑是否已连接到互联网。确保该电脑已连接到可用的网络,并且网...
    99+
    2023-09-06
    电脑
  • Shell $?获取函数返回值或者上一个命令的退出状态
    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。 所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1,这和C语言的...
    99+
    2022-06-04
    Shell $? 函数返回值 shell 上一条命令
  • 如何在bash中退出状态机制
    本篇文章为大家展示了如何在bash中退出状态机制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。程序的退出状态当一个程序结束时会向父进程报告自己的退出状态( exit status ). 通过传递 i...
    99+
    2023-06-09
  • excel如何退出页眉编辑状态
    退出页眉编辑状态的方法有两种:1. 使用快捷键:按下键盘上的Esc键,即可退出页眉编辑状态。2. 使用菜单栏:在Excel的菜单栏中...
    99+
    2023-09-11
    excel
  • Shell $?如何获取函数返回值或者上一个命令的退出状态
    这篇文章主要介绍“Shell $如何获取函数返回值或者上一个命令的退出状态”,在日常操作中,相信很多人在Shell $如何获取函数返回值或者上一个命令的退出状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-09
  • 玩转Win8锁屏及退出锁频状态的技巧
    每次启动Win8的登录界面屏幕便会被一副背景的图片锁住,如果你是第一次使用到Win8系统,大都会傻傻地在干等,其实Win8可以像我们的手机操作一样,只需鼠标左键按住不放,然后轻轻的往上一拖即可进入登录界面或桌面。那么,有...
    99+
    2023-06-05
    Win8 锁屏 状态 技巧 锁频
  • Win8快速锁屏及退出锁频状态技巧图解
    貌似Windows8登录时界面有点像我的手机登录时界面,每当我们启动系统或登录时,屏幕就会被一副背景图片给锁住。因为本人是第一次使用Win8系统,所有不太 快速锁频技巧 使用快捷键Win + L即可快速锁频。 使用快捷...
    99+
    2023-06-05
    Win8 锁屏 状态 技巧 锁频
  • linux中如何使用shell命令查看进程状态
    在Linux中,你可以使用`ps`命令来查看进程的状态。以下是几个常见的`ps`命令选项:1. `ps -ef`:列出所有进程的详细...
    99+
    2023-09-22
    shell linux
  • 如何用Shell监控iptables运行状态
    这篇文章主要介绍“如何用Shell监控iptables运行状态”,在日常操作中,相信很多人在如何用Shell监控iptables运行状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Shell监控ipt...
    99+
    2023-06-09
  • 监控MySQL主从状态的shell脚本
    分享一个Linux下,监控MySQL主从状态及配合企业微信机器人报警的Shell脚本 SLAVE_IP:为监控的主机IP USER:为msyql用户 PASSWORD:为mysql密码 WHER&#...
    99+
    2022-05-27
    监控MySQL 监控MySQL主从状态 MySQL shell脚本
  • Shell+Curl网站状态检查脚本 抓出无法访问的站点
    一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折的网站,更是拿松哥的博客大全举例。当然,我也是深以为然。前些时间,看到梦轩丽人的boke123网址大...
    99+
    2022-06-04
    脚本 抓出 无法访问
  • 怎么用Shell脚本监控iptables运行状态
    这篇文章主要介绍“怎么用Shell脚本监控iptables运行状态”,在日常操作中,相信很多人在怎么用Shell脚本监控iptables运行状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作