总结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,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响 ...
一周排行
  • 前两天跟同事争论一个关于NSString执行copy操作以后是否会发生变化,两个人整了半天,最后写代码验证了一下,发现原来NSString操作没我们想的那么简单,下面就让我们一起看看NSString和NSMutabl ...
  • 首先献上一款练习VIM神器的游戏: http://vim-adventures.com Vim的学习曲线相当的大,所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自&l ...
  • (1)布局文件layout (2)需要弹出的Toast布局文件     (3)类的文件     package com.lc.toastdialog; import android.app.Activity; imp ...
  • 开发月刊推出已经有2年了,相信很多51CTO的网友都阅读过. 开发月刊给大家带来了一些热点技术,观点,还有一些业界新闻的线下阅读平台.发布至今,也收到了很多网友们的好评,当然也有批评. 如今,我们收集了一些网友们的建 ...
  • 解决Docky无法启动的问题   今天开机发现Docky没有自动加载,通过手动点击运行,也没反应,而且也无任何报错信息,一下子还真不知道怎么解决,后面试着在命令中行运行 docky,发现以下错误:   [Info   ...
  • ipad和iphone6充电器通用吗?ipad air充电器可以充iphone6 plus吗?想知道的朋友就和小编一起来看看本篇文章吧 ipad air充电器可以充iphone6吗?很多机友想知道ipad air和i ...
  • 在图片上点右键,选择:图片另存为即可,或点此链接: 分辨率:2X2958
  • 出处:http://blog.u.ulolo.com/Journal/tianxiawenzhangyiyangchao/6480写的一个类帮助器,思路是,可以使用这个帮助器对类动态地控制(在运行时),如添加,删除其 ...
  •                这个项目是差不多耗费了我20天的时间才设计完成的,内容主要是利用c#写出良好的界面,并加以一定算法.下面就是对这个项目进行总结与汇总. 一.功能篇 (1)首先展示一下总体效果,大体设计分 ...
  • VS2008集成的dbProject是一个轻量级的数据库的设计工具.虽然比较起PD还在相当的差距,但一般的用途还是值得肯定的..       今天在试用时遇到一个问题:创建一个SQl server 2005 Data ...