Linux Shell基础 位置参数变量预定义变量

Posted lizhouwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell基础 位置参数变量预定义变量相关的知识,希望对你有一定的参考价值。

位置参数变量

在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数。其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数,依次类推。当参数个数超过 10 个时,就要用大括号把这个数字括起来,例如,${10} 代表第 10 个参数,${14} 则代表第 14 个参数。举个例子:

[[email protected] ~]# ls anaconda-ks.cfg install.log install.log.syslog

$0 的值就是 ls 命令本身,$1 的值就是 anaconda-ks.cfg 这个文件,$2 是 install.log 文件,$3 是 install.log.syslog 文件。在 Shell 中可以识别的位置参数变量如表 1 所示。

位置参数变量作 用
$n n 为数字,$0 代表命令本身,$1?$9 代表第 1?9 个参数,10 以上的参数需要用大括号包含, 如${10}
$* 这个变量代表命令行中所有的参数,把所有的参数看成一个整体
[email protected] 这个变量也代表命令行中所有的参数,不过 [email protected] 把每个参数区别对待
$# 这个变量代表命令行中所有参数的个数

预定义变量 

 预定义变量是在 Shell 一开始时就定义的变量,这一点和默认环境变量有些类似。不同的是,预定义变量不能重新定义,用户只能根据 Shell 的定义来使用这些变量。

预定义变量

作 用

$?

最后一次执行的命令的返回状态。如果这个变量的值为 0,则证明上一条命令正确执行;如果这 个变量的值为非 0 (具体是哪个数由命令自己来决定),则证明上一条命令执行错误

$$

当前进程的进程号(PID)

$!

后台运行的最后一个进程的进程号(PID)

"$?"示例

[[email protected] sh]# ls
hello.sh  #ls命令正确执行
[[email protected] sh]# echo $?
0

变量"$?"返回一个0的值,说明上一条命令已经正确执行,如果执行错误"$?"会返回非0。 

"$$"示例

[[email protected] sh]# vi hello.sh
#!/bin/bash
echo "The current process is $$"

输出当前进程的PID

"$!"示例

find /root -name hello.sh &

使用find命令在/root目录下査找hello.sh文件,符号"&"的意思是把命令放入后台执行。

以上是关于Linux Shell基础 位置参数变量预定义变量的主要内容,如果未能解决你的问题,请参考以下文章

Linux bash基础特性二

linux——shell编程基础

[Linux Shell学习系列五]Shell编程基础-Bash的内部变量,位置参数和特殊参数

shell 怎么取远程服务器的变量值

shell变量

shell语法基础