iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >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://www.lsjlt.com/news/21308.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用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程序退出状态码的命令详解
    目录程序退出状态码前言状态码简介退出码表实例说明退出码——1shell内部操作失败——退出码2退出码126命令没有找到——退出码127信号值&mda...
    99+
    2024-04-02
  • 电脑如何退出脱机状态
    要将电脑从脱机状态恢复到在线状态,可以按照以下步骤操作:1. 首先,检查电脑是否已连接到互联网。确保该电脑已连接到可用的网络,并且网...
    99+
    2023-09-06
    电脑
  • excel如何退出页眉编辑状态
    退出页眉编辑状态的方法有两种:1. 使用快捷键:按下键盘上的Esc键,即可退出页眉编辑状态。2. 使用菜单栏:在Excel的菜单栏中...
    99+
    2023-09-11
    excel
  • 如何在bash中退出状态机制
    本篇文章为大家展示了如何在bash中退出状态机制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。程序的退出状态当一个程序结束时会向父进程报告自己的退出状态( exit status ). 通过传递 i...
    99+
    2023-06-09
  • 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
  • 怎么用Shell脚本监控iptables运行状态
    这篇文章主要介绍“怎么用Shell脚本监控iptables运行状态”,在日常操作中,相信很多人在怎么用Shell脚本监控iptables运行状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚...
    99+
    2023-06-09
  • 怎么用shell脚本监控mysql主从状态
    这篇文章主要介绍“怎么用shell脚本监控mysql主从状态”,在日常操作中,相信很多人在怎么用shell脚本监控mysql主从状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用shell脚本监控mys...
    99+
    2023-06-09
  • ReactMobx状态管理工具的使用
    目录Mobx与redux的区别使用安装observable&&autorunaction使用装饰器写法runInAction(异步)Mobx与redux的区别 mob...
    99+
    2023-02-06
    React Mobx React Mobx状态管理 React状态管理
  • Vue3状态管理的使用详解
    目录背景 Provide / Inject 抽离共享状态提供数据 注入数据 小结 reactive 抽离共享状态使用共享状态 小结 结语 背景 随着Vue3的逐步应用,对状态管理的...
    99+
    2024-04-02
  • React18之状态批处理的使用
    目录状态自动批处理17版 18版 退出状态自动批处理 要点概述react在3月29号正式发布了18版本, 此次更新包括: 状态自动批处理, 客户端渲染a...
    99+
    2024-04-02
  • linux中怎么用shell命令查看进程状态
    要使用shell命令查看进程状态,可以使用以下命令: `ps`命令:用于显示当前正在运行的进程。可以使用不同的选项来过滤和格式化...
    99+
    2023-10-26
    linux shell
  • 怎么用Shell脚本实现apache日志中的状态码
    本篇内容主要讲解“怎么用Shell脚本实现apache日志中的状态码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本实现apache日志中的状态码”吧!一、首先将apache日...
    99+
    2023-06-09
  • shell退出当前循环的方法是什么
    在 shell 中,退出当前循环的方法可以使用关键字 `break`。当执行到 `break` 时,循环会立即终止,并跳出循环的代码...
    99+
    2023-09-14
    shell
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作