shell脚本变量-特殊变量

目录

  • 特殊变量:`$n`
    • 案例需求
  • 特殊变量:`$#`
    • 案例需求
  • 特殊变量:`$*`、`$@`
    • 案例需求
  • 特殊变量:$?
  • 特殊变量:$$

特殊变量:$n

语法

$n

含义:

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

执行脚本文件传入参数语法

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

下面我们来具体实现一个案例来加深印象

案例需求

创建脚本文件demo4.sh文件, 并在脚本文件内部执行打印脚本文件名字, 第一个输入参数, 第二个输入参数
实现步骤

  1. 创建脚本文件demo4.sh
  2. 编辑demo4.sh的文件内容
    命令1: 打印当前脚本文件名字
    命令2: 打印第1个输入参数
    命令3: 打印第2个输入参数
    命令4: 打印第10个输入参数
  3. 执行脚本文件demo4.sh

shell脚本变量-特殊变量_第1张图片
shell脚本变量-特殊变量_第2张图片

特殊变量:$#

语法

$#

含义
获取所有输入参数的个数

案例需求

在demo4.sh中输出输入参数个数
shell脚本变量-特殊变量_第3张图片
在这里插入图片描述

特殊变量:$*$@

语法

$*
$@
# 含义都是获取所有输入参数, 用于以后输出所有参数

$*$@区别

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

现在再来学习一个循环语法便于后面做案例

for var in 列表变量
do		# 循环开始
   命令  # 循环体
done    # 循环结束

案例需求

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

实现步骤:
编辑demo4.sh脚本文件

增加命令: 实现直接输出所有输入后参数
增加命令: 使用循环打印输出所有输入参数
直接输出所有输入参数, 与循环方式输出所有输入参数(使用双引号包含 $*$@ )
shell脚本变量-特殊变量_第4张图片

运行观察区别
shell脚本变量-特殊变量_第5张图片

特殊变量:$?

语法

$?

含义

用于获取上一个Shell命令的退出状态码, 或者是函数的返回值

每个Shell命令的执行都有一个返回值, 这个返回值用于说明命令执行是否成功
一般来说, 返回0代表命令执行成功, 非0代表执行失败

演示(失败):
在这里插入图片描述
演示(成功)
shell脚本变量-特殊变量_第6张图片

特殊变量:$$

语法

$$

含义

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

演示
查看当前Shell环境进程编号

ps -aux|grep bash

在这里插入图片描述

你可能感兴趣的:(Linux,linux,服务器,shell)