Shell编程中的特殊变量之进程状态变量介绍
进程状态变量
1、$$获取当前shell的进程号(PID)
2、$!执行上一个指令的PID
3、$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用)
4、$_在此之前执行的命令或脚本的最后一个参数
cat> test$.sh
echo'$$='$$
echo'$!='$!
echo'$?='$?
echo'$@='$@
echo'$_='$_
#输出如下
sh test\$.sh 1 2 3
$$=2556
$!=
$?=0
$@=1 2 3
$*和$@的区别
$*将所有的参数视为单个字符串,相当于“$1$2$3”
$@将每个参数视为单个的字符串,保留命令行中的任何空白字符
set-- 'I am'jane lee
fori in$*; doecho$i; done;
I
am
jane
lee
fori in$@; doecho$i; done;
I
am
jane
lee
fori in"$@"; doecho$i; done;
I am
jane
lee
fori in"$*"; doecho$i; done;
I am jane lee
相关推荐
-
Shell编程中的特殊变量之位置变量介绍
1.$0 获得当前脚本的文件名,包括路径. 复制代码 代码如下: #写一个测试脚本 vim test.sh #内容如下 dirname$0 basename$0 #执行一下 bash$(pwd)/test.sh #输出如下 /home/jane test.sh 2.$n 获取当前执行脚本的第n个参数,n=1..9,$0,为当前脚本名.如果n大于9,使用${10} 复制代码 代码如下: echo'echo '$(seq-s " $"1 5|sed's/1/$1/') > test_
-
Shell编程中的特殊变量之进程状态变量介绍
进程状态变量 1.$$获取当前shell的进程号(PID) 2.$!执行上一个指令的PID 3.$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用) 4.$_在此之前执行的命令或脚本的最后一个参数 复制代码 代码如下: cat> test$.sh echo'$$='$$ echo'$!='$! echo'$?='$? echo'$@='$@ echo'$_='$_ #输出如下 sh test\$.sh 1 2 3 $$=2556 $!= $?=0 $@=1 2 3 $*和$@的区别
-
Shell编程中while与for的区别及用法详解
在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用语法 1.for循环 for循环常用的语法结构有如下几种: for 变量 in seq字符串 for 变量 in `command` " " for 变量 in "$@"或"$*" for((赋值:条件:运算语句)) 2.while循环 while循
-
Shell编程中Shift的用法小结
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*.若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等
-
shell编程中for循环语句的实现过程及案例
目录 前言 示例1:批量添加用户 示例2:根据IP地址检查主机状态 示例3:自动生成一个8位随机密码 取值范围大小写字母和数字 编写脚本应该注意的事项: 总结 前言 本篇是shell编程for循环的实现过程以及一些案例 什么是for循环 读取不同的变量值,用来逐个执行同一组命令 for 变量名 in 取值列表do 命令序列done#用变量名去取值,然后挨个执行命令,其实就是一个遍历的过程 循环体中三种专业的话术:遍历.迭代.递归 [root@bogon ~]# for i in {1..1
-
Python编程中闭包的变量作用域问题解析
目录 闭包 闭包中的变量 闭包 在我们使用返回函数的时候,由于我们在一个函数中需要返回另一个函数,因此,我们在这个函数中就需要重新定义一个函数.而这样,就造成了我们的函数嵌套问题.外面的函数相对于里面的函数而言是外函数(outer function),而里面的我们叫他内函数(inner function). def outerFunction(): #外函数 def innerFunction(): #内函数 x = 1 return x return innerFunction #返回值是
-
Linux环境变量和进程地址空间介绍
目录 Linux环境变量和进程地址空间 通过代码获取环境变量 进程地址空间 关于为什么是虚拟地址,而不是物理地址? Linux环境变量和进程地址空间 //查看进程pid和父进程 [dy@VM-12-10-centos jincheng_12_5]$ ps ajx | head -1 && ps axj | grep 3669470 PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 3669469 3669470 3669470 366943
-
Java编程中避免equals方法的隐藏陷阱介绍
摘要 本文描述重载equals方法的技术,这种技术即使是具现类的子类增加了字段也能保证equal语义的正确性. 在<Effective Java>的第8项中,Josh Bloch描述了当继承类作为面向对象语言中的等价关系的基础问题,要保证派生类的equal正确性语义所会面对的困难.Bloch这样写到: 除非你忘记了面向对象抽象的好处,否则在当你继承一个新类或在类中增加了一个值组件时你无法同时保证equal的语义依然正确 在<Programming in Scala>中的第28章演示
-
Linux shell编程中IO和条件及循环处理的细节问题讨论
> 與 < 差在哪? 谈到I/O redirection,不妨先让我们认识一下File Descriptor(FD).程序的运算,在大部份情况下都是进行数据(data)的处理,这些数据从哪读进?又,送出到哪里呢?这就是File descriptor(FD)的功用了. 在shell程序中,最常使用的FD大概有三个,分别为: 0: Standard Input(STDIN) 1: Standard Output(STDOUT) 2: Standard Error Output(STDERR) 在标
-
shift妙用之解决shell编程中的入参问题
我说过了,shell是我的常规武器,目前虽然还不纯熟,但是我爱shell这门语言,在Linux下面混,总要写脚本.程序员是有基因,对编程语言是有偏好的,你让我写C代码,我会觉得很爽,会有困难,会有痛苦的摸索和学习,但是,我愿意:学习shell/python,我也很乐意,甚至Lisp这种冷门的语言我也充满了好奇,虽然现在Go和Erlang我一点也不懂,但是我按耐不住对这两种语言的兴趣,只要我抽出手来,一定会和他们缠绵一番.有爱就会有恨,我痛苦地意识到到自己是个很情绪化的程序员,哪怕我一遍遍地骂自己
随机推荐
- vue组件父与子通信详解(一)
- SQL中Having与Where的区别
- jQuery实现注册会员时密码强度提示信息功能示例
- 基于Vue过渡状态实例讲解
- 可关闭与最小化的右下角浮动广告代码
- 关于Flex 初始化的research
- javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
- 关于尾递归的使用详解
- ezSQL PHP数据库操作类库
- Python简单格式化时间的方法【strftime函数】
- MySQL PXC构建一个新节点只需IST传输的方法(推荐)
- JavaScript html5 canvas绘制时钟效果
- Java中的泛型详解
- Linux更新Python版本及修改python默认版本的方法
- linux利用read命令获取变量中的值
- 测试JavaScript字符串处理性能的代码
- Netty学习教程之基础使用篇
- 987MB提供1987M免费php空间申请/可绑米
- JAVA多线程CountDownLatch使用详解
- php实现生成带二维码图片并强制下载功能