on  it road.com

显示变量值

要显示 shell 变量的值,请使用 echo 命令并在变量名前放置一个 $。
我们还可以使用单个 echo 命令在同一行中显示多个变量。
例如 :

$ var1=18
$ var2="Till I Die" 
$ echo $var1 $var2 
18 Till I Die

如何在 Shell 脚本中创建变量

要在 shell 中设置变量,请使用以下语法:

var=value

不要在 = 符号周围放置空格。
如果值包含空格或者特殊字符,请使用单引号或者双引号;例如:

$ var="varibale with spaces"
如何在shell脚本中使用变量

变量只是某个值的占位符。
值可以改变;但是,变量名称将始终相同。
Shell 变量按照惯例大写。

shell 维护着两个变量列表:

  1. 当前shell的本地变量
  2. 针对所有 shell 的全局变量(环境变量)。

使用 set 和 env 命令分别显示本地和环境变量。
以下是 set 和 env 语句的部分输出。
许多变量同时出现在本地和环境变量列表中。

$ set
BASH=/bin/bash
HISTFILE=/home/user/.bash_history
HISTFILESIZE=100000
HISTSIZE=100000
HOME=/home/user
HOSTNAME=geek.mylabserver.com
....
$ env
TERM=xterm-256color
SHELL=/bin/bash
USER=user
LOGNAME=user
....

变量的命名约定

Shell 变量按照惯例大写。

变量名可以包含大写或者小写字母、数字和下划线。

变量名不能以数字开头。

一些引导脚本显示大小写混合的变量名称。
请务必使用有意义的变量名称。

特殊 Shell 变量

用户可以使用多个 shell 变量。
shell 在进程创建或者终止时设置变量值。

1. 进程识别

$$ shell 变量可供用户使用。
它包含当前进程 ID 号。
使用此变量创建不太可能已经存在的文件名。

$ echo $$
10916

如果我们更改或者生成一个新的 shell,该变量的值也会更改。
例如:

$ echo $$ 
1289 
$sh
$ echo $$ 
17716
$ exit
$ echo $$ 
1289

2.退出状态

退出状态是最后执行的命令(程序、脚本或者 shell 语句)的整数值。

变量? (问号)提供最近前台进程的退出状态。
它用于:

  • 确定进程是否成功运行。
  • 设置 ?如果进程成功,则变量为 0,如果不成功,则变量为非零值。

将此视为将成功等同于发生零错误,将失败等同于发生一个或者多个错误或者命令无法执行请求的操作。

$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ echo $?
0
$ grep rot /etc/passwd
$ echo $?
1

3. 后台进程识别

shell 允许我们使用 & 运算符在后台运行命令。
要查找上次启动的后台作业的 PID,echo变量 !。

$ sleep 10 &
[1] 1609
$ echo $!
1609
日期:2020-09-17 00:14:56 来源:oir作者:oir