[000-01-001].第06节:Shell特殊符号变量(Done)

我的后端学习大纲

我的Linux学习大纲


1、特殊变量:$n

1.1.语法

$n

1.2.含义

  • 1.$n用于接收脚本文件执行时传入的参数
    • $0:用于获取当前脚本文件名称的
    • $1~$9,:代表获取第1个输入参数到第9个输入参数
    • 第10个以上的输入参数获取参数的格式: ${数字}, 否则无法获取

1.3.执行脚本文件传入参数:

sh 脚本文件 输入参数1 输入参数2 ...

1.4.案例演示

a.需求:

  • 1.案例需求:创建脚本文件demo4.sh文件, 并在脚本文件内部执行打印脚本文件名字, 第一个输入参数, 第二个输入参数

b.实现:

  • 1.创建demo4.sh文件
    在这里插入图片描述
  • 2.编辑demo4.sh文件, 输出脚本文件名称\第一个输入参数\第二个输入参数
    在这里插入图片描述
    在这里插入图片描述
  • 3.执行demo4.sh文件,输入输出参数itcast itheima的2个输入参数, 观察效果 在这里插入图片描述

2、特殊变量:$#

2.1.语法:

$#

2.2.含义:

  • 获取所有输入参数的个数

2.3.案例演示:

a.需求:

  • 在demo4.sh中输出输入参数个数

b.演示

  • 1.编辑demo4.sh, 输出输入参数个数
    在这里插入图片描述
    在这里插入图片描述
  • 2.执行demo4.sh传入参数itcast, itheima, 播仔 看效果
    在这里插入图片描述

3.特殊变量:$*$@

3.1.语法

  • 1.$*$@都是获取所有输入参数, 用于以后输出所有参数
$*
$@
  • 2.循环语法
for var in 列表变量
do		# 循环开始
   命令  # 循环体
done    # 循环结束

3.2.区别:

  • 不使用双引号括起来,功能一样:
    • $*$@获取所有输入参数,格式为: $1 $2 … $n
    • 使用双引号括起来:
      • "$*"获取的所有参数拼接为一个字符串, 格式为: "$1 $2 ... $n"
      • "$@"获取一组参数列表对象, 格式为: "$1" "$2" ... "$n"
    • 使用循环打印所有输入参数可以看出区别

3.3.案例:

a.需求:

  • 1.在demo4.sh中循环打印输出所有输入参数,
  • 2.体验$*$@的区别

b.实现:

  • 1.编辑demo4.sh文件:
    在这里插入图片描述
  • 2.直接输出所有输入参数, 与循环方式输出所有输入参数(使用双引号包含 $*$@ )
       #!/bin/bash
       # 命令1: 打印当前脚本文件名字
       echo "当前脚本文件名称:$0"
       
       # 命令2: 打印第1个输入参数
       echo "第一个输入参数:$1"
       
       # 命令3: 打印第2个输入参数
       echo "第二个输入参数:$2"
       
       # 命令4: 打印第10个输入参数
       echo "第十个输入参数不带花括号获取:$10"
       echo "第十个输入参数带花括号获取:${10}"
       
       # 命令5 打印所有输入参数的个数
       echo "所有输入参数个数:${#}"
       
       
    
    
    
       # 增加命令: 实现直接输出所有输入后参数
       echo '使用$*直接输出:'$*
       echo '使用$@直接输出:'$@
       
       # 增加命令: 使用循环打印输出所有输入参数
       
       echo '循环遍历输出$*所有参数'
       for item in "$*"
       do
          echo $item
       done
       
       
       echo '循环遍历输出$@所有参数'
       for item in "$@"
       do
          echo $item
       done
    
  1. 运行观察区别
    在这里插入图片描述

4.特殊变量:$?

4.1.语法

$?

4.2.含义:

  • 1.用于获取上一个Shell命令的退出状态码, 或者是函数的返回值
    • 每个Shell命令的执行都有一个返回值, 这个返回值用于说明命令执行是否成功
    • 一般来说, 返回0代表命令执行成功, 非0代表执行失败

4.3.演示:

  • 1.输入一个正确命令, 再输出$?
    在这里插入图片描述
  • 2.输入一个错误命令, 在输出$?
    在这里插入图片描述

5.特殊变量:$$

5.1. 语法

$$

5.2.含义

  • 用于获取当前Shell环境的进程ID号

5.3.演示

  • 1.查看当前Shell环境进程编号:ps -aux|grep bash
    在这里插入图片描述
  • 2.输出 $$ 显示当前shell环境进程编号
    在这里插入图片描述

小结常用的特殊符号变量如下

特殊变量含义
$n获取输入参数的
$0, 获取当前Shell脚本文件名字
$1~$9, 获取第一个输入参数到第九个输入参数
${10} 获取10和10以上的参数需要使用花括号
$#获取所有输入参数的个数
$*$@获取所有输入参数数据
区别: 如果不使用双引号, 功能一样,
获取所有参数数据为一个字符串, 如果使用了双引号,
$@获取的就是参数列表对象, 每个参数都是一个独立字符串,
$?获取上一个命令的退出状态码, 一般;来说0代表命令成功, 非0代表执行失败
$$获取当前shell环境进程的ID号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值