美文网首页
shell中的变量(二)

shell中的变量(二)

作者: 城堡下的晚祷 | 来源:发表于2019-03-26 12:28 被阅读0次

特殊变量

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

相关文章

网友评论

      本文标题:shell中的变量(二)

      本文链接:https://www.haomeiwen.com/subject/upcgvqtx.html