总结linux环境几个特殊的shell变量

 

########################

总结几个特殊的shell变量:

########################

############################################################

#

#http://hi.baidu.com/xece/modify/blog/75327e382149dae23b87ce5a

############################################################

 特殊的shell变量:

$0  获取当前执行的shell脚本的文件名

$n  获取当前执行的shell脚本的第n个参数值,n=1..9

$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别

$#  获取当前shell命令行中参数的总个数

$$  获取当前shell的进程号(PID)

$!  执行上一个指令的PID

$?  获取执行的上一个指令的返回值(0 为成功, 非零为失败)

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”

举例(通过脚本举例,大家也可以一行行执行测试):

[[email protected] test]# cat etiantian.sh

echo ‘$0  获取当前执行的shell脚本的文件名:’$0

echo ‘$n  获取当前执行的shell脚本的第n个参数值,n=1..9:’ ‘$1′=$1 ‘$2′=$2 “\$3=$3″

echo ‘$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别:’$*

echo ‘$#  获取当前shell命令行中参数的总个数:’$#

echo ‘$$  获取当前shell的进程号(PID):’$$

sleep 2 &

echo ‘$!  执行上一个指令的PID :’$!

echo ‘$?  获取执行的上一个指令的返回值:’$?

echo ‘$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”:’$@

脚本执行结果(大家仔细看):

[[email protected] test]# sh etiantian.sh 参数1 参数2 参数3

$0  获取当前执行的shell脚本的文件名: etiantian.sh

$n  获取当前执行的shell脚本的第n个参数值,n=1..9: $1=参数1 $2=参数2 $3=参数3

$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: 参数1 参数2 参数3

$#  获取当前shell命令行中参数的总个数: 3

$$  获取当前shell的进程号(PID): 2062

$!  执行上一个指令的PID : 2063

$?  获取执行的上一个指令的返回值: 0

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”: 参数1 参数2 参数3

[[email protected] test]# sh etiantian.sh ryan jeacen david

$0  获取当前执行的shell脚本的文件名: etiantian.sh

$n  获取当前执行的shell脚本的第n个参数值,n=1..9: $1=ryan $2=jeacen $3=david

$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: ryan jeacen david

$#  获取当前shell命令行中参数的总个数: 3

$$  获取当前shell的进程号(PID): 2160

$!  执行上一个指令的PID : 2161

$?  获取执行的上一个指令的返回值: 0

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”: ryan jeacen david

更多相关文章
  • 了解什么是竞争条件,以及它们为什么会引发安全问题.本文向您展示了如何在类 UNIX® (Unix-like)系统中处理常见的竞争条件,包括如何正确地创建锁文件.锁文件的替代者,如何处理文件系统,以及如何处理共享目录(特别是如何在 /tmp 目录下正确创建临时目录).需要您对信号处理稍有了解. 通过一 ...
  • 一.vim重复命令 1.重复执行上次命令 在普通模式下.(小数点)表示重复上一次的命令操作 拷贝测试文件到本地目录 $ cp /etc/protocols . 打开文件进行编辑 $ vim protocols 普通模式下输入x,删除第一个字符,输入.(小数点)会再次删除一个字符,除此之外也可以重复d ...
  •     表之间的关系分为一对多,多对都,一对一三种,实质就是对外键进行配置.     一.一对多     1. Required         Destination包含Lodging>的集合. public class Destination { public int Destinatio ...
  • <!--#include file="strcheck.asp"--><%笔者在写程序的过程中要用for i=1 to n Response.Write "<input type=text name=name"&n&&q ...
  • 乔治·奥威尔出生于一九零三年,卒于一九五零年.就像史蒂芬·茨威格说的一样,他们这一代人目睹了欧洲的式微衰落,战争给人类带来的巨大伤亡,以及各种思潮主义导致的集权主义的泛滥,他们这一代人的惨痛经历要比过去几代人甚至是几十代的都要多.史蒂芬·茨威格对生活充满着忧愁和痛苦的回忆,他放佛看不到欧洲的未来,终 ...
  • 处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照.JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响 ...
一周排行
  • http://app.travel.fashion.ifeng.com/city_detail.php?id=96 root盲注漏洞 可配合服务器的dz6.0论坛 拿到shell权限 漏洞证明:     只是大致分析 ...
  • NAT是网络地址翻译就是把公网IP翻译成私有地址, 又叫端口映射或端口转发. 采用路由方式是指ADSL拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网.这时ADSL的外部地址只有一个 ...
  • OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念.你在桌面上看到的硬盘都挂在 /Volumes 下.比如接上个叫做 USBHD的移动硬盘,桌面 ...
  • 一. [[email protected] etc]# getconf LONG_BIT [[email protected] etc]# getconf WORD_BIT (32位的系统中int类型和long类型一般都是4字节,64位的系统中in ...
  • 题目链接:uva 1485 - Permutation Counting 题目大意:给定n和k,要求求一个由1~n组成的序列,要求满足ai>i的i刚好有k个的序列种数. 解题思路:dp[j][i]表示长度为i, ...
  • java集合类简介(重学)   一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例:姓名-电话, ...
  •      Mysql是通过yacc进行SQL语句解析的,这里介绍一下如何使用mysql的源码进行SQL语句解析.由于Mysql的源代码注释比较少,而且缺少资料,所有些地方研究不够深入. 1        Filed介 ...
  • P/Invoke Interop Assistant是一款帮助使用P/Invoke(及reverse P/Invoke)的开发人员进行托管代码与非托管代码之间签名转换的小工具.在一月份的MSDN杂志的网站上,我们曾经 ...
  • 简单的说 MyData 就是一个帕斯卡命名法 而myData是一个骆驼命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼 而iMyData是一个匈牙利命名法,它的小写的i说明了它的形态,后面 ...
  • Java中常用的IO操作基本上可以分为四大部分,分别是:File类操作.RandomAccessFile类操作.字节流操作.字符流操作.只要熟练掌握了本文中所列举的所有例子,基本上对于Java的IO流操作就可以说是掌 ...