|NO.Z.00049|——————————|LinuxShell|——|Linux&Shell$变量.V06|——|预定义变量|
一、预定义变量
作用 | |
$? | 最后一个执行的命令的返回状态, 如果这个变量的值为0,证明上一个命令正确执行,如果这个变量的值为非0, (具体是哪个数,由命令自己来决定)则证明上一个命令执行不正确了。 |
$$ | 当前进程的进程号(PID) |
$! | 后台运行的最后一个进程的进程号(PID) |
二、预定义变量实验
### --- 预定义变量配置说明
~~~ 我们先来看看“$?”这个变量,看起来不好理解,我们还是举个例子:
~~~ ls 命令正确执行
[root@localhost sh]# ls
count.sh hello.sh parameter2.sh parameter.sh
~~~ 预定义变量“$?”的值是 0,证明上一个命令执行正确
[root@localhost sh]# echo $?
0
~~~ # ls: 无法访问 install.log: 没有那个文件或目录
~~~ 当前目录中没有 install.log 文件,所以 ls 命令报错了
[root@localhost sh]# ls install.log
~~~ 变量“$?”返回一个非 0 的值,证明上一个命令没有正确执行
~~~ 至于错误的返回值到底是多少,是在编写 ls 命令时定义好的,如果碰到文件不存在就返回数值 2
~~~ 接下来我们来说明下“$$”和“$!”这两个预定义变量,我们写个脚本吧:
[root@localhost sh]# echo $?
2
三、创建预定义变量
### --- 创建预定义变量
[root@localhost sh]# vi variable.sh
!/bin/bash
Author: shenchao (E-mail: shenchao@atguigu.com)
echo "The current process is $$"
# 输出当前进程的 PID。
# 这个 PID 就是 variable.sh 这个脚本执行时,生成的进程的 PID
find /root -name hello.sh &
# 使用 find 命令在 root 目录下查找 hello.sh 文件
# 符号&的意思是把命令放入后台执行,工作管理我们在系统管理章节会详细介绍
echo "The last one Daemon process is $!"
# 输出这个后台执行命令的进程的 PID,也就是输出 find 命令的 PID 号
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv008-shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」