|NO.Z.00048|——————————|LinuxShell|——|Linux&Shell$变量.V05|——|位置参数变量|
一、位置参数变量
作用 | |
$n | n为数字,1-{10} |
$* | 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 |
$# | 这个变量代表命令行中所有参数的个数 |
### --- 创建位置参数变量脚本
[root@localhost sh]# vi count.sh
!/bin/bash
Author: shenchao (E-mail: shenchao@atguigu.com)
num1=$1
# 给 num1 变量赋值是第一个参数
num2=$2
# 给 num2 变量赋值是第二个参数
sum=$(( $num1 + $num2))
# 变量 sum 的和是 num1 加 num2
# Shell 当中的运算还是不太一样的,我们 Shell 运算符小节中详细介绍
echo $sum
# 打印变量 sum 的值
### --- 位置参数变量脚本说明
~~~ 那么还有几个位置参数变量是干嘛的呢?我们在写个脚本来说明下:
[root@localhost sh]# vi parameter.sh
!/bin/bash
Author: shenchao (E-mail: shenchao@atguigu.com)
echo "A total of $# parameters"
# 使用$#代表所有参数的个数
echo "The parameters is: $*"
# 使用$*代表所有的参数
echo "The parameters is: $@"
# 使用$@也代表所有参数
三、对待接收到的所有参数区分说明
### --- 对待接收到的所有参数区分说明
~~~ 那么“$*”和“$@”有区别吗?还是有区别的,$*会把接收的所有参数当成一个整体对待,
~~~ 而$@则会区分对待接收到的所有参数。还是举个例子:
[root@localhost sh]# vi parameter2.sh
!/bin/bash
Author: shenchao (E-mail: shenchao@atguigu.com)
for i in "$*"
# 定义 for 循环,in 后面有几个值,for 会循环多少次,
# 注意“$*”要用双引号括起来每次循环会把 in 后面的值赋予变量 i
# Shell 把$*中的所有参数看成是一个整体,所以这个 for 循环只会循环一次
do
echo "The parameters is: $i"
# 打印变量$i 的值
done
x=1
# 定义变量 x 的值为 1
for y in "$@"
# 同样 in 后面的有几个值,for 循环几次,
# 每次都把值赋予变量 y可是 Shell 中把“$@”中的每个参数都看成是独立的,
# 所以“$@”中有几个参数,就会循环几次
do
echo "The parameter$x is: $y"
# 输出变量 y 的值
x=$(( $x +1 ))
# 然变量 x 每次循环都加 1,为了输出时看的更清楚
done
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv008-shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」