博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中变量#,#,@,0,0,1,2,2,*,$$,$?的含义
阅读量:6069 次
发布时间:2019-06-20

本文共 1437 字,大约阅读时间需要 4 分钟。

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.sh echo "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/shnum=$#name=$0echo "number:$num"echo "scname:$name"echo $0echo $1echo $2for ((i=0; i<$num; i++))do    echo "$i"doneecho "argume:$@"for key in $@do    echo $keydoneecho "-----------------"for key in "$@"do    echo $keydoneecho "-----------------------------"for key2 in $*do     echo $key2doneecho "-----------------"for key2 in "$*"do     echo $key2doneecho "show process id:$$"choecho "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 表示呢?

转载地址:http://elygx.baihongyu.com/

你可能感兴趣的文章
为什么多线程、junit 中无法使用spring 依赖注入?
查看>>
CentOS Apache配置详解
查看>>
Spring Mvc Url和参数名称忽略大小写
查看>>
小记5.8面试
查看>>
Linux 文件系统的目录定义
查看>>
【剑指offer】Q17:合并两个排序的链表
查看>>
No.2 PyQt学习
查看>>
阿里安全资深专家杭特辣评中国网络安全人才之“怪现状”
查看>>
MonoDB的数据准备
查看>>
AngularJS------命令行
查看>>
价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集
查看>>
Docker数据卷
查看>>
vscode常用设置
查看>>
程序员之---C语言细节20(符号和有符号之间转换、两数相加溢出后数值计算)...
查看>>
zookeeper学习
查看>>
【mac】mac上安装软件,报错 鉴定错误,但是安装包都是好的
查看>>
设计模式的6大原则
查看>>
【转】观看视频时启用硬件加速有什么用?如果关闭硬件加速又有什么区别呢?...
查看>>
Weblogic12c 单节点安装
查看>>
CentOS7下安装Docker-Compose操作记录
查看>>