位置参数变量
作用
$n n代表数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$# 这个变量代表命令行中所有的参数个数
eg1:假设在/tmp/ 目录下 新建脚本 canshu.sh
脚本 内容
#!/bin/bash
echo $0 输出命令本身
echo $1 接收第一个参数
echo $2 接收第二个参数
echo $3 接收第三个参数
保存,chmod 755 canshu.sh
执行 : ./canshu.sh 11 22 33
输出结果 : ./canshu.sh
11
22
33
eg2:加法计算器 新建脚本 qiuhe.sh
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2)) ///双小括号表示算术运算,求num1和num2的和
echo $sum
执行 : ./qiuhe.sh 11 22
输出: 33
eg3: $#,$*,$@ 简单演示,新建脚本:ceshi.sh
#!/bin/bash
echo $#
echo $*
echo $@
执行: ./ceshi.sh aa bb cc dd
输出: 4 ///(四个参数,aa,bb,cc,dd)
aa bb cc dd
aa bb cc dd
这个例子看不出$* 和 $@的区别
eg4:$*和$@的区别
1.新建脚本:qubie1.sh
#!/bin/bash
num1=0
for i in "$*" /$* 把所有的参数看做成一个整体,for循环只执行一次
do
num1=$(($num1+1))
echo "------- $i"
echo " $num1"
done
执行 : ./qubie1.sh a b c d e
输出:------- a b c d e 1
2.新建脚本:qubie2.sh
#!/bin/bash
num2=0
for y in "$@" /$@ 把所有的参数看做成独立的,所以"$@"有几个参数就会循环几次
do
num2=$(($num2+1))
echo "------- $y"
echo " $num2"
done
执行 : ./qubie2.sh a b c d
输出:------- a 1 ------- b 2 ------- c 3 ------- d 4
$n n代表数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$# 这个变量代表命令行中所有的参数个数
eg1:假设在/tmp/ 目录下 新建脚本 canshu.sh
脚本 内容
#!/bin/bash
echo $0 输出命令本身
echo $1 接收第一个参数
echo $2 接收第二个参数
echo $3 接收第三个参数
保存,chmod 755 canshu.sh
执行 : ./canshu.sh 11 22 33
输出结果 : ./canshu.sh
11
22
33
eg2:加法计算器 新建脚本 qiuhe.sh
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2)) ///双小括号表示算术运算,求num1和num2的和
echo $sum
执行 : ./qiuhe.sh 11 22
输出: 33
eg3: $#,$*,$@ 简单演示,新建脚本:ceshi.sh
#!/bin/bash
echo $#
echo $*
echo $@
执行: ./ceshi.sh aa bb cc dd
输出: 4 ///(四个参数,aa,bb,cc,dd)
aa bb cc dd
aa bb cc dd
这个例子看不出$* 和 $@的区别
eg4:$*和$@的区别
1.新建脚本:qubie1.sh
#!/bin/bash
num1=0
for i in "$*" /$* 把所有的参数看做成一个整体,for循环只执行一次
do
num1=$(($num1+1))
echo "------- $i"
echo " $num1"
done
执行 : ./qubie1.sh a b c d e
输出:------- a b c d e 1
2.新建脚本:qubie2.sh
#!/bin/bash
num2=0
for y in "$@" /$@ 把所有的参数看做成独立的,所以"$@"有几个参数就会循环几次
do
num2=$(($num2+1))
echo "------- $y"
echo " $num2"
done
执行 : ./qubie2.sh a b c d
输出:------- a 1 ------- b 2 ------- c 3 ------- d 4