shell脚本学习——3.位置参数变量、预定义变量

上篇主要讲解完反引、双引和单引,其中反引的用法和$()一致,都可以使终端命令的返回值赋给变量

本篇主要讲解位置参数变量、预定义变量。

位置参数变量

介绍:当我们执行一个shell脚本的时候,如果希望获取到终端命令执行该脚本的参数信息,就可以使用位置参数变量,

例:

      ./mark.sh 20 30 10 ,这个终端命令在执行mark脚本时,传入了20,30,10三个参数进去,如果脚本想使用,就可以使用位置参数变量

用法:

       $n : n表示常量,比如你想获取到上面的30,也就是第二个参数,使用$2即可

       $* : 代表获取到所有的参数

       $@:代表获取到所有的参数

       $#: 代表获取到参数的个数

案例:

老规矩,我们还是在/usr/local/shell 目录下,vi position.sh,编辑一个新的脚本,写下

#!/bin/bash
#使用$n获取到位置参数
echo "第一个参数:$1,第二个参数:$2,第三个参数:$3"
echo "所有的参数(*):$*"
echo "所有的参数(@): $@"
echo "参数个数:$#"

保存退出后,我们别忘记给新的脚本授权 ,执行。

我们发现,假如我不给任何参数,执行不会报错,脚本认为参数都是空的给你使用,个数为0

而当我们传入参数后,依次显示成功,不过这里我们发现使用$@和$*的方式一样,那他们有什么区别吗?有区别的,这边我们暂时没到循环,区别咱们先保留,留到后面再进行说明。

预定义变量

介绍:预定义变量就是shell设计者预先已经定义好的变量,我们可以直接在shell脚本中直接使用

常用的有:

         $$:当前进程的进程号

         $!:后台最后运行的进程号

         $?:最后一次执行命令的返回状态,如果是0表示上一个命令正确执行

案例:

        我们再来一个文件 vi predefine.sh,编辑内容

#!/bin/bash
./position.sh &
echo "当前进程:$$"
echo "最后运行的进程 $!"
echo "最后成功?$?"

第二行执行我们刚才的位置参数的文件,后面跟的&表示让该命令在后台运行

保存退出后,我们授权执行。

 执行成功,我们在这个predefine.sh中的进程号是50975,然后最后执行的(执行了position.sh)进程号是50976

成功后,可以使用ctrl +c结束,回到命令行模式

  

   

猜你喜欢

转载自blog.csdn.net/chenjing928/article/details/86605803