Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 介绍

  • 安装

  • 基础

  • shell

    • 介绍
    • 入门
    • 系统变量
    • 自定义变量
    • 环境变量
    • 位置参数变量
      • 基本语法
        • $n 接收入参
        • $* 所有参数
        • $@ 所有参数
        • $# 入参个数
    • 预定义变量
    • 运算符
    • 条件判断
    • 流程控制
    • 读取控制台输入
    • 系统函数-路径文件名
    • 自定义函数
    • 工具
    • 数据库备份案例
  • 面试与总结
  • System-Linux
  • shell
Shetengteng
2022-02-26

位置参数变量

当执行一个shell脚本时,如果要获取命令行的参数信息,可使用到位置参数变量 如 ./myshell.sh 100 200 是一个shell脚本执行命令,可以在myshell中获取到100和200这2个参数

# 基本语法

# $n 接收入参

接收入参,表示脚本入参的占位符

n 为数字

$0 表示该脚本的名称

$1-9 表示第一个到第九个参数

十个以上的参数使用大括号括起来表示 ${10}

应用实例

输出脚本的入参

  • 编写paramter.sh 文件,并 chmod 777 paramter.sh
#!/bin/bash
echo $0 $1 $2
1
2
  • 执行shell文件
    • 位置0 表示脚本的名称
    • 位置1 表示第一个参数
    • 位置2 表示第二个参数
[root@hadoop100 sh-demo]# ./paramter.sh param1 param2
./paramter.sh param1 param2
1
2

对脚本进行修改,加深对单引号和双引号的认识

  • 修改paramter.sh脚本
#!/bin/bash
echo $0 $1 $2
echo '$0='$0
echo '$1='$1
echo '$2='"$2"
1
2
3
4
5
  • 执行
# 单引号里面的$输出的就是$字符串,而在双引号中的$则依然表示命令
[root@hadoop100 sh-demo]# ./paramter.sh param1 param2
./paramter.sh param1 param2
$0=./paramter.sh
$1=param1
$2=param2
1
2
3
4
5
6

# $* 所有参数

表示命令行入参的所有参数,将所有参数看成一个整体,类似于args.toString(),参数之间以空格连接

# $@ 所有参数

表示命令行入参的所有参数,等于输入参数的列表对象,等价于args的引用

应用实例

  • 编写 paramter.sh
#!/bin/bash
echo $0 $1 $2
echo '$*='$*
echo '$@='$@
1
2
3
4
  • 执行
# $* 和 $@ 打印的效果是一样的
[root@hadoop100 sh-demo]# ./paramter.sh param1 param2
./paramter.sh param1 param2
$*=param1 param2
$@=param1 param2
1
2
3
4
5

# $# 入参个数

获取输入参数的个数,等价于args.length 那么$1等价于args[1],通常用于循环

[root@hadoop100 sh-demo]# cat paramter.sh 
#!/bin/bash
echo $0 $1 $2
echo $#

[root@hadoop100 sh-demo]# ./paramter.sh param1 param2
./paramter.sh param1 param2
2
1
2
3
4
5
6
7
8
Last Updated: 2022/03/20, 10:04:55
环境变量
预定义变量

← 环境变量 预定义变量→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式