$0 $# $n-->$[1..9] $* $@
- $0:显示当前的脚本文件名,如果在执行脚本时添加了路径,那么全部都会输出
- $n:获取当前执行的shell脚本的第n个参数值比如:[n=1..9],如果N大于9那么就要使用{}来定义 比如${10}
- $#:获取当前shell脚本后面接的参数的个数
- $*:获取当前脚本的参数,不加引号和$@是一样的 加了引号;例如"$*" 则表示单个字符串。相当于"$1 $2 $3"
- $@:同样也是获取当前shell的参数,不加引号和$*是一样的,那么加了引号如:"$@" 表示将所有的参数视为不同独立的字符串,相当于"$1" "$2"..
1)$1 $2 特殊变量实战
- [root@yankerp src]# cat test.sh #查看脚本的内容
- #!/bin/bash
- echo $1 ---<定义了$1
- [root@yankerp src]# source test.sh yankai #执行的脚本的时候将yankai赋值给脚本中的1
- yankai #输出yankai
- [root@yankerp src]#
- [root@yankerp src]# cat test.sh #脚本内容
- #!/bin/bash
- echo $1
- [root@yankerp src]# source test.sh zhangsan lisi #zhansgan lisi是两个字符串以空格分割
- zhangsan #只输出了zhangsan,因为脚本中只定义了$1
- [root@yankerp src]#
- [root@yankerp src]# cat test.sh #查看脚本的内容
- #!/bin/bash
- echo $1
- [root@yankerp src]# source test.sh "zhangsan lisi" #加双引号表示一个字符串参数
- zhangsan lisi #最后输出结果为zhangsan lisi
- [root@yankerp src]#
- [root@yankerp src]# cat test.sh #查看脚本的内容
- #!/bin/bash
- echo $1 $2 定义了$1 $2
- [root@yankerp src]# source test.sh zhangsan lisi #在执行脚本的时候定义了两个字符串
- zhangsan lisi #说明 zhangsan赋值给了$1 lisi赋值给了$2 输出结果为 zhangsan lisi
- [root@yankerp src]#