系统中是有 exit 命令的,用于退出当前用户的登录状态。但是在 Shell 脚本中,exit 语句是用来退出当前脚本的。也就是说,在 Shell 脚本中,只要碰到了 exit 语句,后续的程序就不再执行,而直接退出脚本。exit 的语法如下:

exit [返回值]

如果在 exit 之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。可以通过查询 $? 这个变量来査看返回值。如果 exit 之后没有定义返回值,则脚本执行之后的返回值是执行 exit 语句之前最后执行的一条命令的返回值。写一个 exit 语句的例子:

[root@localhost ~]#vi sh/exit.sh

#!/bin/bash

#演示exit的作用

read -p "Please input a number:" -t 30 num

#接收用户的输入,并把输入赋予变量num

y=$(echo $num|sed's/[0-9]//g')

#如果变量num的值是数字,则把num的值替换为空;否则不替换

#把替换之后的值赋予变量y

[-n "$y" ] && echo "Error! Please input a number!" && exit 18

#判断变量y的值,如果不为空,则输出报错信息,退出脚本,退出返回值为18

echo The number is: $num"

#如果没有退出脚本,则打印变量num中的数字

在这个脚本中,大家需要思考,如果输入的不是数字,那么"echo"The number is:$num""这条命令是否会执行?当然不会,因为如果输入的不是数字,那么"[-n"$y"]&&echo"Error! Please input a number!"&&exit 18"这条命令就会执行,exit 一旦执行,脚本就会中止。运行一下这个脚本:

[root@localhost ~]# chmod 755 sh/exit.sh

#给脚本赋予执行权限

[root@localhost ~]# sh/exit.sh

#执行脚本

Please input a number: test

#输入值不是数字,而是test

Error! Please input a number!

输出报错信息,而不会输出test

[root@localhost ~]# echo $?

#查看一下返回值

18

#返回值居然是18

[root@localhost ~]# sh/exit.sh

Please input a number: 10

#输入数字10

The number is: 10

#输出数字10

linux exit 流程,Shell exit流程控制语句及用法相关推荐

  1. 项目上线的流程 shell基础-进阶 mysql安装 数据库基本操作 LAMP环境的部署 linux配置数据库远程连接

    三,项目上线流程(必须掌握) 1,服务器选配购买 项目上线服务器必须是外网服务器 一般服务器有两种:购买真实服务器,购买虚拟服务器 购买真实服务器一次性成本过高 所以现在基本都是云服务器 以后以阿里云 ...

  2. linux操作系统未正常启动提示Entering emergency mode. Exit the shell to continue

    是一台阿里云ecs服务器,通过vnc登录看到如下信息,进入了救援模式: Generating "/run/initramfs/rdsosreport.txt" "Ente ...

  3. linux shell脚本 exit0,Bash exit命令和exit退出代码

    通常,在编写Bash脚本时,需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施. 在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态. 退出状态 每个shell命令成功终止 ...

  4. 虚拟机、Linux开机开机失败,提示Entering emergency mode.Exit the shell to continue...

    目录 报错信息: 原因: 解决办法: 1. 输入journalctl 2. 我电脑显示里面的值为dm-0,按住Ctrl+C就可以从里面退出来,此时输入代码: xfs_repair -v -L /dev ...

  5. SHELL/SSH基础知识(入门篇)-包含 shell 脚本语言的基本用法、 shell 脚本语言的基本用法、流程控制、函数 function、其它脚本相关工具、数组 array(欢迎留言交流)

    目录 1 shell 脚本语言的基本用法 1.1 shell 脚本注释规范 1.1.1 shell 脚本注释规范 1.1.2 执行(5种) 1.1.3 在远程主机运行本地脚本 1.1.4 检查shel ...

  6. Linux学习笔记43——开机流程、模块管理与 Loader

    一.Linux 的开机流程分析 1 开机流程一览 2 BIOS, boot loader 与 kernel 载入 Boot Loader 的功能 3 第一支程序 systemd 及使用 default ...

  7. linux如何在C程序中使用exit,c语言exit和return区别,在fork和vfork中使用

    exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在main主函数中,则会退出函数并返 ...

  8. Linux系统捕获数据包流程

    Linux系统捕获数据包流程 为了提高数据包的捕获效率,瓶颈问题是一个需要非常关注的焦点.减少在捕获数据包过程中的瓶颈,就能够提高数据包捕获的整体性能.下面本文将以Linux操作系统为平台,分析捕获数 ...

  9. Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

最新文章

  1. (2017年11月)天池医疗AI大赛肺部结节智能诊断在线分享
  2. HTML的标签描述16
  3. Mac 下通过Keytool生成签名证书
  4. hitTest练手例子
  5. linux网络协议栈之数据包处理过程,Linux网络协议栈之数据包处理过程
  6. 使用mysqlbinlog恢复指定表
  7. ajax中怎么验证data,我应该在jQuery的ajax成功处理程序中验证响应数据吗?
  8. 结构重参数化技术【为了模型压缩】:进可暴力提性能,退可无损做压缩
  9. android 调试好事工具类,Android 工具类之总结 Hua
  10. Python按元组中第一个字符串升序第二个字符串降序排序
  11. 拉普拉斯算子属于卷积方法吗_论文笔记 - 图卷积神经网络综述
  12. 不依赖第三方环境和服务
  13. Widevine DRM介绍
  14. 『信息安全技术』 标准系列合集(467个)
  15. Byte学堂:共享单车数据处理原理及分析方法
  16. java学不下去能学web安全吗,这半年学习 Web 安全的一点心得体会
  17. python发微信红包_微信现金红包 python
  18. unity 粒子插件_unity的基本认识——走进unity
  19. 游戏自定义金币单位换算管理类
  20. 1012:8除不尽的数

热门文章

  1. shell 编程-Expect
  2. php mysql 查询数据出现连接重置_php使用mysql和mysqli连接查询数据
  3. SpringCloud+OAuth2+Redis实现的微服务统一认证授权
  4. Java:实现文件批量导入导出实践(兼容xls,xlsx)
  5. org.apache.commons.math3.linear.FieldMatrix的类关系图
  6. vue create 新项目时,命令行工具卡死(npm卡死)
  7. Eclipse MAT 安装及使用
  8. 力学,软体和刚体碰撞响应 以及 层次KDOP_OBB包围盒技术
  9. 函数模板遇上函数重载
  10. Net学习日记_ASP.Net_一般处理程序_笔记