10.4.3 Bash变量位置参数变量

10.4.3 Bash变量位置参数变量

$n
n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}.
向脚本当中传递我们需要的数值。

[.@.]vi canshu1.sh

#!/bin/bash
echo $0
echo $1
echo $2
echo $3

[.@.]chmod 755 canshu1.sh
[.@.]./canshu1.sh 11 22 33
./canshu1.sh
11
22
33

[.@.]vim canshu2.sh

#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2))
echo "sum is : $sum"

[.@.]chmod 755 canshu2.sh
[.@.]./canshu2.sh 11 22
sum is : 33


$* 
这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

$# 
这个变量代表命令行中所有参数的个数


[.@.]vim canshu3.sh
#!/bin/bash
echo "A total of $# parameters"
echo "The parameters is: $*"
echo "The parameters is: $@"

[.@.]chmod 755 canshu3.sh
[.@.]./canshu3.sh 11 22 33 44 55 66
6
11 22 33 44 55 66
11 22 33 44 55 66
$*$@的区别
#!/bin/bash
for i in "$*"
#$* 中的所有参数看成是一个整体,所以这个for循环只会循环一次
 do
  echo "The parameters is: $i"
 done
 
x=1
for y in "$@"
#$@中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次

 do
  echo "The parameter$x is: $y"
  x=$(( $x + 1))
 done

位置参数变量最大的目的,就是为了向程序当中传递需要的值,但是位置参数变量有一个问题。除非脚本是自己写的,否则根本不会清楚,我要在脚本后面跟几个参数。在实际工作中,建议用其他的方式来接收用户的输入,而不是采用位置参数变量。它的好处是可以在命令执行的同时解释脚本,而不是命令执行完了,单独敲入参数传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值