1
2
3
4
5
6
7
8
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

区别:@@*

  • 相同点:都是引用所有参数
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在112 3)则"3)则"*" 等价于 “112 3"(传递了一个参数);而“3"(传递了一个参数);而“@" 等价于 "1""1""2" "$3"(传递了三个参数)

例子一

##dels.shecho "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

执行结果

1
2
3
4
5
6
7
8
9
[@jihite]$ sh del.sh 1 2 3
number:3
scname:del.sh
first: 1
second:2
argume:1 2 3
show parm list:1 2 3
show process id:21057
show precomm stat: 0

例子二

#!/bin/sh
num=$#
name=$0
echo "number:$num"
echo "scname:$name"
echo $0
echo $1
echo $2for ((i=0; i<$num; i++))
doecho "$i"
doneecho "argume:$@"
for key in $@
doecho $key
done
echo "-----------------"
for key in "$@"
doecho $key
done
echo "-----------------------------"
for key2 in $*
do echo $key2
done
echo "-----------------"
for key2 in "$*"
do echo $key2
doneecho "show process id:$$"
cho
echo "show precomm stat: $?"

执行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[@jihite]$ sh del.sh a b                                                      
number:2
scname:del.sh
del.sh
a
b
0
1
argume:a b
a
b
-----------------
a
b
-----------------------------
a
b
-----------------
a b
show process id:23582
del.sh: line 37: cho: command not found
show precomm stat: 127

问题:

echo #0 #1 能不能用 $i 表示呢?

最新文章

  1. JavaEE框架整合之基于注解的SSH整合
  2. AI - 深度学习之美十四章-概念摘要(8~14)
  3. 计算机组成原理——I/O设备(外部设备)、I/O接口
  4. 进一步掌握linux吧
  5. 的watch什么时候触发_建筑结构丨泡面为什么是弯的,海带又为什么要打结?
  6. python收入波动告警分析_使用Python/Pandas分析告警日志数据
  7. 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
  8. idea配置连接oracle数据库的pom文件中添加什么?
  9. 软件与软件工程的概念
  10. IT = 加班多?外国小哥打破“魔咒”:“每天工作 10 分钟,工资近 9 万美元!”...
  11. C#LeetCode刷题之#59-螺旋矩阵 II(Spiral Matrix II)
  12. mysql数据库报错1075_MySQL数据库之在MAC OS X上安装MYSQL
  13. c语言语法语义解析器,一个简单的C语言词法分析与语法分析器【原】
  14. 规范 : disable account
  15. 2017-2018-2 PDE 讨论班
  16. 阿里云张献涛:2021 弹性计算发生了哪些变化
  17. 工商银行java script error windows7_Win8.1装工行网银提示"called runscript when not marked in progress"的解决方法...
  18. 【小象学院】案例4——52周存钱挑战v4.0
  19. C++加速代码(DAY 39)
  20. 演讲实录|OpenMLDB 与阿里云 MaxCompute 生态集成

热门文章

  1. Google 鼓励的 13 条代码审查标准,建议收藏!
  2. Dubbo 高危反序列化漏洞,存在远程代码执行风险,建议及时升级到2.7.7或更高版本!...
  3. 这个操作稳!云厂商开设免费云计算课程,学员独享49元主机套餐包年!
  4. 再见微服务,从100多个问题儿童到一个超级明星
  5. 在前后端分离的路上承受了多少痛?看看这篇是否能帮到你?
  6. python第七关再来一盘_Python爬虫自学系列(七) — 项目实战篇(一)
  7. android gridview不显示 自定义,Android gridview和自定义标题
  8. mysql怎么查询排第几名并列_MySQL并列排名和顺序排名查询
  9. 开源论文推荐:含人脸识别、实例分割、跟踪、SR等
  10. python opencv 投影变换 黑边