Linux系统Shell中的特殊变量

9 篇文章 0 订阅

特殊变量$n

含义:用于接收脚本文件执行时传入的参数,$1-$9代表获取第一参数到第九个参数
第十个参数以后:${10}
$0用于获取当前脚本文件名称的

示例:

执行脚本文件传入参数语法:sh 脚本名称 参数1 参数2…

echo "当前脚本名称是:$0"
echo $1
echo $2
echo ${10}               
输出结果是:
[root@web2 sh]#sh demo4.sh  1 2 3 4 5 6 7 8 9 10
当前脚本名称是:demo4.sh
1
2
10

特殊变量$#:获取所有输入参数的个数

echo "所有输入参数的个数是:${#}"

特殊变量:$* $@

$* 
$@
#含义都是获取所有输入参数,用于以后输出所有参数
区别:
    1不使用双引号括起来,功能一样
        $* $@获取所有输入参数,格式是$1 $2...
    2使用双引号括起来:
        "$*":获取的所有参数拼接位一个字符串,格式"$1 $2 $3"
        "$@":获取一组参数对象,格式为:"$1" "$2" "$n"
使用循环打印所有参数可以看出区别
    for var in 列表变量
    do
        命令
    done                               
    

示例:$* $@的区别

实现直接输出所有参数
使用循环输出所有参数
echo "使用\$*直接输出:$*"
echo "使用\$@直接输出:$@"

echo "使用循环直接输出:\$@"
for item in "$@"
do
    echo $item
done
echo "使用循环直接输出:\$*"
for item in "$*"
do
    echo $item
done
输出结果:
所有输入参数的个数是:10
使用$*直接输出:1 2 3 4 5 6 7 8 9 10
使用$@直接输出:1 2 3 4 5 6 7 8 9 10
使用循环直接输出:$@
1
2
3
4
5
6
7
8
9
10
使用循环直接输出:$*
1 2 3 4 5 6 7 8 9 10

特殊符号变量$?:获取上一个shell命echo令的推出状态码,或者是函数的返回值,返回0代表执行成功,非0执行失败。

在这里插入代[root@web2 sh]#echo 1
1
[root@web2 sh]#echo $?
0
[root@web2 sh]#2
-bash: 2: 未找到命令
[root@web2 sh]#echo $?
127
码片

特殊变量$$:用于获取当前Shell环境的进程ID号

查询当前SHell的进行id号:
ps -aux |grep bash
echo $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪你听风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值