位置参数变量
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。
比如: ./myshell.sh 100 200 ,这就是一个shell命令行,可以在这个命令行中获取100 200 这两个参数到myshell.sh 程序中;
基本语法:
$n
: n为数字,$0
代表命令行本身,$1
-$9
代表第一到第九个参数,直接在shell里用这些参数即可,不用向编程语言一样先定义形参,超过9个参数呢? 用大括号包含起来就可以,如${10}
;
$*
:这个变量代表命令行中的所有参数,并且把所有参数看作一个整体;
$@
:这个变量同样代表命令行中的所有参数,只不过将所有的参数区分对待;
$#
:这个变量代表命令行中的参数个数;
实际测试一下
编写一个.sh文件
文件里直接使用 输出上面的变量 来进行测试;
可以看到第一行输出的是我命令行本身、$1
、$2
,这三个值,第二行看似和第三行一样,其实一个是整体对待,一个是区分对待两个参数,第四行是输出参数个数,即两个;
预定义变量
就是shell设计者已经定义好的变量,可以直接拿到shell脚本中使用;
基本用法
$$
:(当前进程的进程号PID);
$!
:(后台运行的最后一个进程的进程号PID);
$?
:(最后一次执行命令的返回状态,如果这个变量值为0,则证明上个命令执行正确,如果为非0,则代表上面的命令执行不正确);
一个小例子测试
首先输出当前PID,然后后台运行一个shell程序(这里就是上面刚建立的shell程序,随便一个都可以),(后面加&代表后台运行),然后输出上一个进程的PID,然后输出最后一次命令的返回值。
可以看到输出,当前进程3224,最后进程号3225,最后一次命令执行结果返回值为 0(代表执行正确);
再见…(待续)