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_n.sh
cattest_n.sh
#内容如下
#echo $1 $2 $3 $4 $5
bashtest_n.sh arg1 agr2 arg3
#输出内容:
#arg1 agr2 arg3
3、$* 获取脚本所有参数
echo'echo $*'>test_*.sh
cattest_*.sh
#内容如下:
#echo $*
bashtest_*.sh 1 2 3
#输出:
#1 2 3
4、$# 获得脚本所有参数的个数
echo'echo $#'>test_j.sh
cattest_j.sh
#内容如下:
#echo $#
bashtest_j.sh 1 2 3
#输出:
#3
相关推荐
-
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编程中Shift的用法小结
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*.若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $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编程中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 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我一点也不懂,但是我按耐不住对这两种语言的兴趣,只要我抽出手来,一定会和他们缠绵一番.有爱就会有恨,我痛苦地意识到到自己是个很情绪化的程序员,哪怕我一遍遍地骂自己
-
J2ME编程中的几个重要概念介绍
我们都知道,Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒.移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API.它和Java SE.Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的. J2ME平台中有几个重要的概念,例如内存.CLDC.MIDP等.初学J2ME往往对这些概念理解不深,甚至出现偏差.本文的目的在于对J2
-
分享shell编程中的几个小技巧
1.打印一些头信息command << dilimiter----dilimiter 以分界符号dilimiter中的内容作为命令的标准输入常用在echo命令中,这样就避免了没输出一行就要使用一个echo命令,同时,输出格式的调整也相应变得简单了.例如: echo << something_message**********************hello, welcome to use my shell script **********************somet
随机推荐
- cookie的secure属性详解
- ios8 UITableView设置 setSeparatorInset UIEdgeInsetsZero不起作用的解决办法(去掉15px空白间距)
- JavaScript的面向对象(二)
- php数据库连接时容易出错的特殊符号问题
- 正则基础之 小数点
- js将long日期格式转换为标准日期格式实现思路
- Python判断值是否在list或set中的性能对比分析
- js判断60秒以及倒计时示例代码
- 使用PDB简单调试Python程序简明指南
- jquery ezUI 双击行记录弹窗查看明细的实现方法
- 基于jQuey实现鼠标滑过变色(整行变色)
- JS实现的另类手风琴效果网页内容切换代码
- 解决realplayer11中文正式版网页右键乱码问题embed_cn.dll
- C# List<T> Contains<T>()的用法小结
- webuploader 实现图片批量上传功能附实例代码
- 浅谈springMVC接收前端json数据的总结
- Nodejs中怎么实现函数的串行执行
- 网易2016研发工程师编程题 奖学金(python)
- python调用pyaudio使用麦克风录制wav声音文件的教程
- java实现从网络下载多个文件