位置参数变量
位置参数变量 | 作用 |
+$n | n为数字,$0代表文件本身,$1-$9代表第一参数到第九参数,十以上的参数需要大括号包括,如${10} |
$* | 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 |
$# | 这个变量代表命令行中所有的参数个数 |
实例-理解参数
编写一个脚本,测试参数变量。
创建并打开一个文本
vim canshu2.sh
编写脚本
#!/bin/bash echo "请输入俩个数值参数:" sum=$(($1 + $2)) echo "sum is : $sum"
执行脚本
./canshu2.sh 10 20
运行效果:
实例-剩余参数
编写一个脚本,测试参数变量。
创建并打开一个文本
vim canshu3.sh
编写脚本
#!/bin/bash echo "A total of $# parameters" #使用$#代表所有参数的个数 echo "The paramenters is:$*" #使用$*代表所有参数 echo "The paramenters is:$@" #使用$@也表示所有参数
执行脚本
./canshu3.sh 12 12 23 45
运行效果:
实例-区别整体对待和单独对待
编写一个脚本,测试参数变量。
创建并打开一个文本
vim canshu4.sh
编写脚本
#!/bin/bash for i in "$*" #$*中所有的参数看成一个整体,所以这个for循环只会循环一次 do echo "The parameters is:$i" done x=1 for y in "$@" #$@中每个参数都看成一个独立的,所以"$@"中有几个参数,就会循环几次 do echo "The paramenters$x is :$y" x=$(($x+1)) done
执行脚本
./canshu3.sh 10 20
运行效果: