shell脚本学习第三天——特殊变量
2017-07-23 14:49
309 查看
一、位置变量:
$0 获取当前执行脚本的文件名,包括脚本路径。$n 获取当前执行脚本的第n个参数,1~9,大于9,用{}括起来,比如:${10}。
$# 表示参数个数
seq 9|sed 's#[0-9]#$g' seq -s " $" 1 10 | sed 's/1/$1/'
以上用两种方法用产生“$1 $2一直到$10 ”用到了一个函数seq,下面对这个函数进行介绍。
用法:seq [选项]… 尾数
或:seq [选项]… 首数 尾数
或:seq [选项]… 首数 增量 尾数
以指定增量从首数开始打印数字到尾数。
-f, –format=格式 使用printf 样式的浮点格式
-s, –separator=字符串 使用指定字符串分隔数字(默认使用:\n)
-w, –equal-width 在列前添加0 使得宽度相同
–help 显示此帮助信息并退出
–version 显示版本信息并退出
如果省略了首数或者增量,则默认其值为1,即使这样尾数仍小于首数。
首数、增量和尾数均以浮点数形式解释。当首数小于尾数时增量一般为正值,
相反在首数大于尾数时增量一般为负数。
指定的格式必须适用于显示”double”类型的参数;当首数、增量和尾数均为指定
精确度的定点十进制数时默认为”%.精确度f”,否则默认为”%g”。
$ seq 1000 #起始默认是 1,间隔默认也是1 $ seq 2 100 #从2打印到100,间隔默认是1 $ seq 1 3 10 #从1到10,间隔为3,结果是:1 4 7 10 $ seq -s " $" 1 10 #以 $作为分隔符打印1~10
关于sed函数的用法可参考 :
http://blog.csdn.net/qicheng777/article/details/70847365
运行一个简单的shell程序 来观察$0以及$#具体含义:
二、进程状态命令:
1、\$?获取上一个指令的返回值。
一般用于判断上一个命令是否执行成功,如果成功为0。下面是$?的返回值:
返回值 | 含义 |
---|---|
0 | 表示运行成功 |
2 | 权限拒绝 |
1~125 | 运行失败,脚本命令、系统命令错误或参数传递错误 |
126 | 找到命令但是无法执行 |
127 | 未找到要运行的命令 |
>128 | 命令被系统强制结束 |
[yangni@centos6 shell]$ find -aa find: unknown predicate `-aa' [yangni@centos6 shell]$ echo $? 1 //参数错误 [yangni@centos6 shell]$ maek -bash: maek: command not found [yangni@centos6 shell]$ echo $? 127 //命令未找到 [yangni@centos6 shell]$ ./a.sh -bash: ./a.sh: Permission denied [yangni@centos6 shell]$ echo $? 126 //找到命令,无法执行 [yangni@centos6 shell]$ ls a.sh [yangni@centos6 shell]$ echo $? 0 //成功执行返回0
2、
$$获取当前shell进程号。
写一个死循环来测试:
#!/bin/bash echo $$ > a.log while true do uptime sleep 2 done
其他一些状态命令:
$! 执行上一个指令的PID $_ 在之前执行的命令或脚本的最后一个参数 $* 将所有参数视为单个字符串 $@ 这个程序的所有参数,这是把参数传给其他程序的 最佳方式
$*和$@的区别:
$* 将所有参数视为单个字符串$@ 这个程序的所有参数,这是把参数传给其他程序的
最佳方式
如果带引号: "$1$2$3" 单个参数 $@ 这个程序的所有参数,这是把参数传给其他程序的 最佳方式 "$1" "$2" "$3" 三个参数 如果不加引号,打印出来就不一样
相关文章推荐
- shell脚本学习:特殊变量和C语言格式循环
- 【Shell脚本学习8】Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- 【Shell脚本学习8】Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- Shell脚本学习-位置参数和特殊变量
- Shell脚本中的位置变量参数(特殊字符)实例讲解
- linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断
- 【shell脚本学习】2.linux shell变量
- shell学习三-----特殊变量
- shell脚本学习2——变量
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- shell脚本编程之条件判断,算术运算,整数测试及特殊变量
- shell 脚本编程之特殊变量
- shell 脚本学习笔记-1 终端打印 变量 环境变量
- [Linux] shell bash 脚本特殊变量 [大三TJB_708]
- Shell学习笔记---特殊变量
- shell 脚本中的特殊变量 以及 shell 脚本的调试
- shell脚本变量特殊字符的含义
- shell脚本的作用,shell脚本变量的定义和三种赋值方式【shell脚本的学习笔记一】
- shell 脚本之特殊变量字符
- shell脚本中的特殊变量