Shell编程关于位置参数变量,利用脚本来解释 $* $# $@

1.位置参数变量介绍:

Shell编程关于位置参数变量,利用脚本来解释 $* $# $@_第1张图片

2.简单实验:

2.1编写一个加法计算器:

[root@localhost tmp]# vim count.sh                                                                                                                                                                                       
#!/bin/bash
a=$1
b=$2
sum=$(($a+$b))
echo "$sum"

注意:在Shell中使用数学运算时,由于shell变量没有数字型,认为是字符串类型,所以不能直接进行加减等数学运算,需要用两个小括号(( ))括起来代表数学运算

举例:

直接数学运算,会报错-bash: 1+4: command not found

[root@localhost tmp]# a=1
[root@localhost tmp]# b=4
[root@localhost tmp]# c=$($a+$b)
-bash: 1+4: command not found
[root@localhost tmp]# c=$(($a+$b))
[root@localhost tmp]# echo $c
5
[root@localhost tmp]# 

2.2利用位置进行传参,来运行脚本计算器脚本

[root@localhost tmp]# sh count.sh 14 8
22
[root@localhost tmp]# 

2.3利用脚本来解释 $* ,$# ,$@

[root@localhost tmp]# vim count.sh       
#!/bin/bash
a=$1
b=$2

sum=$(($a+$b))

echo "$sum"
echo "$#"
echo "$@"
echo "$*"     

运行脚本

[root@localhost tmp]# sh count.sh 14 8
22
2
14 8
14 8
[root@localhost tmp]# 

通过脚本解释$* 和 $@ 的区别:

[root@localhost tmp]# vim for.sh
#!/bin/bash
for i in "$*"
        do
                echo $i
        done

echo "------------------------------------------"

for y in "$@"
        do
                echo $y
        done
~            
[root@localhost tmp]# sh for.sh 11 22 33 44
11 22 33 44
------------------------------------------
11
22
33
44
[root@localhost tmp]# 

$* 将所有参数看成一个整体,只循环了一次
$@ 将每个参数分开,单独来看,执行多次循环

你可能感兴趣的:(Linux,shell编程)