特殊变量
1.$n
语法:$n
功能描述:n
为数字,$0
代表该脚本名称,$1
-$9
代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
案例:
(1)创建parameter.sh :
[root@localhost shelldata]# touch parameter.sh
[root@localhost shelldata]# chmod u+x parameter.sh
(2)编辑脚本为:
#!/bin/bash
echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
echo "$0 $1 $2"
(3)调用脚本:
[root@localhost shelldata]# ./parameter.sh
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh
[root@localhost shelldata]# ./parameter.sh hello world
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh hello world
2.$#
语法:$#
功能描述:获取所有输入参数个数,常用于循环
案例:
(1)编辑parameter.sh 为
#!/bin/bash
echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
echo "$0 $1 $2"
echo "参数个数:" $#
(2)调用:
[root@localhost shelldata]# ./parameter.sh
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh
参数个数: 0
[root@localhost shelldata]# ./parameter.sh hello world
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh hello world
参数个数: 2
[root@localhost shelldata]# ./parameter.sh hello world my
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh hello world
参数个数: 3
由上面可以看出$#
获取的参数个数为实际传入的参数个数。
3. $* , $@
语法及功能:
\$*
: 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
\$@
: 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
案例:
(1)编辑parameter.sh 为
#!/bin/bash
echo "下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)"
echo "$0 $1 $2"
echo "参数个数:" $#
echo $*
echo $@
(2)调用
[root@localhost shelldata]# ./parameter.sh hello world mytest
下面输出:脚本名称+第一个参数名+第二个参数名(参数在调用脚本时给值)
./parameter.sh hello world
参数个数: 3
hello world mytest
hello world mytest
4.$?
语法:$?
功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
案例:
[root@localhost shelldata]# echo 123
123
[root@localhost shelldata]# echo $?
0
[root@localhost shelldata]# 123
-bash: 123: command not found
[root@localhost shelldata]# echo $?
127
网友评论