Linux中变量#,@,0,1,2,*,$$,$?的含义
- $# 是传给脚本的参数个数
- $ 是脚本本身的名字
- $ 是传递给该shell脚本的第一个参数
- $ 是传递给该shell脚本的第二个参数
- $@ 是传给脚本的所有参数的列表
- $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
- $$ 是脚本运行的当前进程ID号
- $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
- 区别:@*
- 相同点:都是引用所有参数
- 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在12 3)则"*" 等价于 “12 3"(传递了一个参数);而“@" 等价于 "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: $?"
执行结果为:
- [@jihite]$ sh del.sh
- number:
- scname:del.sh
- first:
- second:
- argume:
- show parm list:
- show process id:
- show precomm stat:
例子二:
- #!/bin/sh
- num=$#
- name=$
- echo "number:$num"
- echo "scname:$name"
- echo $
- echo $
- echo $
- for ((i=; i<$num; i++))
- do
- echo "$i"
- done
- echo "argume:$@"
- for key in $@
- do
- echo $key
- done
- echo "-----------------"
- for key in "$@"
- do
- echo $key
- done
- echo "-----------------------------"
- for key2 in $*
- do
- echo $key2
- done
- echo "-----------------"
- for key2 in "$*"
- do
- echo $key2
- done
- echo "show process id:$$"
- cho
- echo "show precomm stat: $?"
执行结果:
- [@jihite]$ sh del.sh a b
- number:
- scname:del.sh
- del.sh
- a
- b
- argume:a b
- a
- b
- -----------------
- a
- b
- -----------------------------
- a
- b
- -----------------
- a b
- show process id:
- del.sh: line : cho: command not found
- show precomm stat:
问题:
echo #0 #1 能不能用 $i 表示呢?
原文地址 -> 戳我
随机推荐
- mysql引擎整理
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引 擎:ISAM.MYISAM和HEAP.另外两种类型I ...
- Linux和Windows远程桌面互连
1.Ubuntu 连 windows W.1 Windows设置允许远程桌面连接 U.1 Ubuntu设置 apt-get install rdesktop U.2 Ubuntu连接 ...
- 内存映射MMAP和DMA【转】
转自:http://blog.csdn.net/zhoudengqing/article/details/41654293 版权声明:本文为博主原创文章,未经博主允许不得转载. 这一章介绍Linux内 ...
- editPlus,3.7V 注册码
editPlus,3.7V 注册码: username:linzhihui password:5A2B6-69740-D9CDE-79702-C9CCD
- 怎么使用Docker搭建PHP开发环境呢?
在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...
- js实现通用的微信分享组件示例
一.可定义的信息 1.分享时显示的LOGO:2.分享LOGO的宽度:3.分享LOGO的高度:4.分享出去显示的标题(默认调用网页标题):5.分享出去显示的描述(默认调用网页标题):6.分享链接(默认为 ...
- Human Gene Functions
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18053 Accepted: 1004 ...
- Safecracker 分类: HDU 搜索 2015-06-25 21:12 12人阅读 评论(0) 收藏
Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- Color Me Less 分类: POJ 2015-06-10 18:24 11人阅读 评论(0) 收藏
Color Me Less Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31693 Accepted: 15424 D ...
- Epoll,Poll,Select模型比较
http://blog.csdn.net/liangyuannao/article/details/7776057 先说Select: 1.Socket数量限制:该模式可操作的Socket数由FD_S ...