特殊变量(位置参数变量)

介绍

  1. 执行一个shell脚本时,希望从命令行获取参数信息,就可以使用位置参数变量
  2. 例如:./myshell 100 200,这就是shell命令行,可以在myshell脚本中获取到参数100 200 的信息

基本语法

  1. $n (n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数需要使用大括号包含${10})
  2. $* (这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
  3. $@ (这个变量代表命令行中所有的参数,不过$@把每个参数区分对待)
  4. $# (这个变量代表命令行中的所有参数个数)

实例

#创建一个position.sh脚本,在脚本中获取到命令行的各个参数信息
#! bin/bash

echo '特殊变量$0 $1 $2...的作用'
echo '结果:' $0 $1 $2

echo '特殊变量$#的作用'
echo '结果':$#

echo '特殊变量$*的作用'
echo '结果':$*

echo '特殊变量$@的作用'
echo '结果':$@


# 执行结果
[root@localhost shell]# bash var.sh 1 2 3 4 5 6
特殊变量$0 $1 $2...的作用
结果: var.sh 1 2
特殊变量$#的作用
结果:6
特殊变量$*的作用
结果:1 2 3 4 5 6
特殊变量$@的作用
结果:1 2 3 4 5 6

$* 和$@ 的区别

$* 和$@ 的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数
当$*和$@ 不被双引号" " 包围时,他们之间没有任何区别,都是将接受到的每个参数看作一份数据批次之间以空格来分割

但是当他们被双引号" "包含时,就会有区别了:
"$*" 会将所有的参数从整体上看做一份数据,而不是把每个参数看做一份数据
"1 2 3 4 5 6"

"$@" 任然将每个参数都看作一份数据,彼此之间时独立的
"1"
"2" 
"3"
"4"
"5"
"6"
posted @   savagee  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示