shell中的变量(二)

特殊变量

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容