shell基础-bash变量-预定义变量(图文详细)

前言

  • 其实位置参数变量属于预定义变量的一种,它的内容比较多,所以一般单独拿出来。他跟预定义变量都一样的。系统事先规定好的,变量名不能更改,变量的作用不能更改,能做的只能往里面传入不同的值。

1. 预定义变量

预定义变量 作用
$? 最后一此执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)

举个栗子:

  • (1)为什么错误返回值为127那??? 系统规定好的,当碰到命令找不到的时候,给$?传递的值就是127,文件找不到时返回2.
    shell基础-bash变量-预定义变量(图文详细)

$?的主要作用: 用来接收和判断上一条命令是否正确执行。比如: || 逻辑或 第一条命令不能执行的时候,第二条命令才能执行。后面这条命令是怎么知道第一条命令是否正确执行那,归根结底就是判断\ $? 如果\ $?是0那么第一条命令正常执行,如果\ $?不等于0,那么第一条命令不能正确执行。有可能有疑问: 一条命令是正确的,因为有结果。一条命令是错误的。因为有报错。这样的命令判断结果,是给用户看的。但是要让计算机怎么知道这条命令的正确执行那,就只能依赖\ $? 写的程序如何判断上一条命令正确执行那,就只能依赖$?

  • (2) 写一个脚本,让其执行,结果显示当前进程的进程号,显示后台运行的最后一个进程的进程号。最小化就是放入后台,&代表放进了后台执行
    shell基础-bash变量-预定义变量(图文详细)
    shell基础-bash变量-预定义变量(图文详细)

2.接收键盘输入(重要)

命令: read [选项] [变量名]
选项:
            -p   “提示信息”   :在等待read输入时,输出提示信息
            -t      秒数           :read命令会一直等待用户输入,使用此选项可以指定等待时间
            -n     字符数       :read命令只接受指定的字符数,就会执行
            -s                       :隐藏输入的数据,适用于机密信息的输入

开始实验:
(1) 写一个脚本,包含四种选项类型,然后执行。
shell基础-bash变量-预定义变量(图文详细)
shell基础-bash变量-预定义变量(图文详细)