shell基础--shell特殊变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell基础--shell特殊变量相关的知识,希望对你有一定的参考价值。

一.变量列表

技术分享

 

二.实验

系统:centos 7

1.特殊变量

[[email protected]~_~ day2]# cat p.sh
#!/bin/bash
echo ‘$0:‘$0
echo ‘$*:‘$*
echo ‘[email protected]:‘[email protected]
echo ‘$#:‘$#
echo ‘$1$2$3:‘ $1$2$3
[[email protected]~_~ day2]# sh p.sh a b c d
$0:p.sh
$*:a b c d
[email protected]:a b c d
$#:4
$1$2$3: abc

2.$$

[[email protected]~~ day2]# echo $$
1974

3.shift命令: 移位位置参数,重命名位置参数 $N+1、$N+2 ... 到 $1、$2 ... 如果没有给定 N,则假设为1。每次移动之后$#会少N

退出状态:
返回成功,如N 为负或者大于 $#则失败

(1).例子一,移动位置变量

[[email protected]~_~ day3]# cat r.sh
#!/bin/bash
until [ $# -eq 0 ]
do
echo "the first value is:$1 the number of values is:$#"
shift
done
[[email protected]~_~ day3]# sh r.sh 1 2 3 4 5
the first value is:1 the number of values is:5
the first value is:2 the number of values is:4
the first value is:3 the number of values is:3
the first value is:4 the number of values is:2
the first value is:5 the number of values is:1

(2).例子二,利用shift移位进行累加

[[email protected]~_~ day3]# cat s.sh
#!/bin/bash
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is:$sum"
[[email protected]~_~ day3]# sh s.sh 1 2 3 4 5
sum is:15

注意:以上的位移量都是1,位移量大于1时,输入参数个数的不同,可能会有逻辑错误。




































以上是关于shell基础--shell特殊变量的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本由基础变量及特殊变量($@$*$#等)到实战。

Shell脚本入门 02:变量与特殊变量

[Linux Shell学习系列五]Shell编程基础-Bash的内部变量,位置参数和特殊参数

Shell最最基础教程案例讲解值得收藏系列

Linux bash基础特性二

Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数