Shell中一些特殊的变量

本文详细介绍了Shell脚本中各种特殊变量的使用方法,包括如何获取脚本名称、参数数量及参数值等,通过实例演示了$*与$@的区别。
$0

获取当前执行Shell的脚本名。

$n

获取当前shell第n个参数,当大于9时,则用花括号括起来,例如${10},接的参数一空格隔开

$#

获取当前执行shell脚本后面接的参数的个数

$*

获取当前shell脚本所有传参的参数。不加引号和@相同。如果加上引号,如"@相同。如果加上引号,如"@"*",则表示将所有的参数视为单个字符串,相当于"$1$2$3$4"

$@

获取当前shell脚本所有传参的参数。不加引号和$*相同。加上引号,则把所有的参数当作不同的单利字符串,相当于"$1"、"$2"。

区别:当加双引号时,两者有区别,当不加双引号时,二者无区别

以下通过例子进行说明:

[root@localhost TestShell]# cat test02.sh 
#!/bin/sh
set -- "You are" a man
#获取脚本路径
echo `dirname $0`
#获取脚本名
echo `basename $0`
#输出个数
echo "字符串的个数为:$#"
#分别打印参数
echo "第一个值:" $1
echo "第二个值:"$2
echo "第三个值:"$3

# 测试 $* 和 $@ 不加引号
echo "测试结果如下:"
for i in $*
do
 echo $i
done
echo ""
echo "测试结果如下:"
for i in $@
do 
 echo $i
done

# 测试 $* 和 $@ 加引号
echo "测试结果如下:"
for i in "$*"
do
 echo $i
done
echo ""
echo "测试结果如下:"
for i in "$@"
do
 echo $i
done

执行输出结果如下:

[root@localhost TestShell]# sh /TestShell/test02.sh 
/TestShell
test02.sh
字符串的个数为:3
第一个值: You are
第二个值:a
第三个值:man
测试结果如下:
You
are
a
man

测试结果如下:
You
are
a
man
测试结果如下:
You are a man

测试结果如下:
You are
a
man
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值