您的位置:首页 > 运维架构 > Shell

shell脚本常用技巧

2015-05-26 13:23 204 查看
http://www.techug.com/ten-tips-for-wonderful-bash-productivity

不管怎么样,自己要去学习。也还可以看看一些命令。
算术比较:

-eq 等于

-ne 不等于

-gt 大于

-ge 大于等于

-lt 小于

-le 小于等于

参数处理-Shell传入参数的处理:

1. $# 传递到脚本的参数个数

2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个

3. $$ 脚本运行的当前进程ID号

4. $! 后台运行的最后一个进程的进程ID号

5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数

6. $- 显示shell使用的当前选项,与set命令功能相同

7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

变量 含义 :

$0 脚本名字

$1 位置参数 #1

$2 - $9 位置参数 #2 - #9

${10} 位置参数 #10

$# 位置参数的个数

"$*" 所有的位置参数(作为单个字符串) *

"$@" 所有的位置参数(每个都作为独立的字符串)

${#*} 传递到脚本中的命令行参数的个数

${#@} 传递到脚本中的命令行参数的个数

$? 返回值

$$ 脚本的进程ID(PID)

$- 传递到脚本中的标志(使用set)

$_ 之前命令的最后一个参数

$! 运行在后台的最后一个作业的进程ID(PID)

系统信息:

uname

cat /proc/version 返回系统信息

uname -m 返回 “i686″等信息

uname -r 内核版本

uname -n 主机名

uname -s 系统名称,比如”linux”

uname -p 处理器类型和名称(我这里显示 “unknown”)

uname -a 所有 uname 信息

rm -rf表示删除文件,而且可以删除非空目录。-rf参数表示递归强制删除。

文件比较运算符:

-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]

-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]

-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]

-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]

-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]

-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]

-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]

filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]

字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

-z string 如果 string长度为零,则为真 [ -z "$myvar" ]

-n string 如果 string长度非零,则为真 [ -n "$myvar" ]

string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]

string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
推荐:http://www.techug.com/ten-tips-for-wonderful-bash-productivity
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: