四大特殊状态变量:$?、 $$、 $!、 $_

$?的作用是:获取执行上一个指令的执行状态返回值,返回0表示上一个命令或者程序执行成功,返回的值为非0则表示上一个命令执行失败。

$$的作用是:获取当前执行的shell脚本的进程号PID。

$!的作用是:获取上一个后台工作的进程的进程号PID。

$_的作用是:获取在此之前执行的命令或脚本的最后一个参数。

我们通过一个简单的演示实例了解下这些状态变量的用法,请看下图

测试命令

当我执行了一个切换到root目录的命令没有执行成功,我再用echo $?命令查看结果,结果为2,非零;

当我执行一个切换到/home/zhanghq目录的命令执行成功了,我再用echo $?命令查看结果,结果为0;

我用echo $$命令看到了进程号14623;

这些命令这样执行看起来很简单,或许你会觉得没什么用,因为命令执行不成功会有错误提示,命令执行成功会有正确的回显内容,或者直接换行。但是确实是有一些应用场景必须用到这些变量。

比如一个新手用户,在安装服务的时候,可以通过执行$?这个命令的返回值来确定命令的执行状态,从而快速确定命令是否执行成功。

比如一个系统管理员对当前服务器的数据库进行备份时,我们会再执行关键命令的时候,通过获取返回值来判断命令是否成功,确认数据是否完整。

而程序员通过“exit 数字”“return 数字”把数字返回给$?,凭借此可以知道程序的运行状态。

Linux shell编程:状态变量相关推荐

  1. Linux Shell 编程学习总结

    Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...

  2. linux实验三shell程序设计,实验三 LINUX SHELL编程

    精选文库 -实验三LINUX SHELL 编程 四.实验内容 本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术.内容如下: 1.创建以下菜单程序: USER ...

  3. linux —— shell 编程(文本处理)

    导读 本文为博文 linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed a ...

  4. 【“计算机科学与技术”专业小白成长系列】Linux Shell 编程 极简教程

    Linux Shell 编程 极简教程 内容摘要 本文是 Linux Shell 编程简单入门.主要内容: Linux 简介 Shell 编程入门 Kotlin 脚本与 Shell 脚本 Linux ...

  5. 《Linux Shell编程从初学到精通(第2版)》pdf

    下载地址:网盘下载 内容简介 编辑 shell是用户与内核进行交互操作的一种接口,是linux最重要的软件之一.目前最流行的shell称为bash shell,bash shell脚本编程以其简洁.高 ...

  6. linux简单重定向代码,Linux Shell编程(26)——代码块重定向

    像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 .所有的这些依靠代码块结尾的 < ...

  7. Linux Shell编程语句case

    Linux Shell编程case语句 case语句 case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下:case $变量名 in模式1)命令序列1;;模式2)命令序列2;; ...

  8. linux shell 处理日语,linux —— shell 编程(文本处理)

    导读 本文为博文linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 1.基本文本处理 sort:用于排序,常 ...

  9. linux怎么退出shell编程,Linux Shell编程(11)——退出和退出状态

    exit命令一般用于结束一个脚本,就像C语言的exit一样.它也能返回一个值给父进程. 每一个命令都能返回一个退出状态(有时也看做返回状态).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零 ...

  10. 「Linux」Linux Shell 编程基础入门

    Linux Shell 编程基础入门 1. 变量 1.1 变量定义 1.2 使用变量 1.3 引号 1.4 将命令的结果赋值给变量 1.5 位置参数 1.6 特殊变量及其含义 2. 字符串 2.1 字 ...

最新文章

  1. python 深拷贝_python 深拷贝
  2. 我国农村经济发展战略
  3. python实现udp聊天室_python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序...
  4. 浏览器模式用户代理字符串(IE)
  5. 二甲医院云服务器,医院用上云计算 病情上传到云端可行否?
  6. 找出数组中两数之和为指定值的所有整数对
  7. 《MYSQL必知必会》— 14~17.子查询、联结、高级联结、组合查询
  8. 程序员如何在未来之路寻找自己的“龙椅”
  9. Uploadify 控件上传图片 + 预览
  10. qt设置进程开机自启动
  11. 汇编3-计算机程序是如何运行的
  12. iOS 新浪新闻首页卡片滚动特效实现
  13. 和平精英小程序服务器开小差,1个BUG存在了4年 光子通过小提示说出了无法修复的原因...
  14. 甘肃省国家沙漠公园功能区划及分布
  15. mysql中IFNULL,NULLIF,ISNULL函数的对比
  16. java入门基础(四)
  17. 词频统计,中文分词FMM,BMM博客
  18. 2021年植发行业研究报告
  19. MySQL数据库 学习笔记 零基础入门 面试 整理
  20. 华中科技大学成立人工智能学院,两名长江学者坐镇

热门文章

  1. python发送qq邮件列表_Python SMTP发送邮件
  2. ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性
  3. 前端如何实现音乐盒胶盘的转动_郑州Web前端入门教程之如何实现图片优化?
  4. Dws同步mysql数据_数据库技术丨GaussDB(DWS)数据同步状态查看方法
  5. python编程从入门到实战类的定义_Python编程:从入门到实践—类
  6. jquery parsley ajax,用户体验超棒且功能强大使用简单的javascript表单验证 - Parsley.js...
  7. numpy 是否为零_一文看懂Numpy统计计算、数组比较
  8. python中size的用法_在Python中PyArray_SIZE的正确用法是什么?
  9. 固定导航栏android,Android 状态栏和导航栏的真终极解决方案
  10. import numpy as np_纪录27个NumPy操作