Linux中变量#,#,@,0,0,1,2,2,*,$$,$?的含义
2024-05-15 08:45:04
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 表示呢?
最新文章
- JavaEE框架整合之基于注解的SSH整合
- AI - 深度学习之美十四章-概念摘要(8~14)
- 计算机组成原理——I/O设备(外部设备)、I/O接口
- 进一步掌握linux吧
- 的watch什么时候触发_建筑结构丨泡面为什么是弯的,海带又为什么要打结?
- python收入波动告警分析_使用Python/Pandas分析告警日志数据
- 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
- idea配置连接oracle数据库的pom文件中添加什么?
- 软件与软件工程的概念
- IT = 加班多?外国小哥打破“魔咒”:“每天工作 10 分钟,工资近 9 万美元!”...
- C#LeetCode刷题之#59-螺旋矩阵 II(Spiral Matrix II)
- mysql数据库报错1075_MySQL数据库之在MAC OS X上安装MYSQL
- c语言语法语义解析器,一个简单的C语言词法分析与语法分析器【原】
- 规范 : disable account
- 2017-2018-2 PDE 讨论班
- 阿里云张献涛:2021 弹性计算发生了哪些变化
- 工商银行java script error windows7_Win8.1装工行网银提示"called runscript when not marked in progress"的解决方法...
- 【小象学院】案例4——52周存钱挑战v4.0
- C++加速代码(DAY 39)
- 演讲实录|OpenMLDB 与阿里云 MaxCompute 生态集成
热门文章
- Google 鼓励的 13 条代码审查标准,建议收藏!
- Dubbo 高危反序列化漏洞,存在远程代码执行风险,建议及时升级到2.7.7或更高版本!...
- 这个操作稳!云厂商开设免费云计算课程,学员独享49元主机套餐包年!
- 再见微服务,从100多个问题儿童到一个超级明星
- 在前后端分离的路上承受了多少痛?看看这篇是否能帮到你?
- python第七关再来一盘_Python爬虫自学系列(七) — 项目实战篇(一)
- android gridview不显示 自定义,Android gridview和自定义标题
- mysql怎么查询排第几名并列_MySQL并列排名和顺序排名查询
- 开源论文推荐:含人脸识别、实例分割、跟踪、SR等
- python opencv 投影变换 黑边