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

shell 脚本专家指南笔记

2013-03-03 23:34 369 查看
1.设置verbose

在脚本添加 set -x/v

-x xtrace确认代码是否正确运行

+x 不再显示verbose

2.大小写转换

$test=`echo $test|tr [a-z] [A-Z]`

3.系统时间使用

declare -a DATE=(`date +"%S %M %k %d %m %Y"`)

或使用 $(date +%Y%m%d) 年月日

$(date +%H%M%S) 时分秒

$(date +%s)从1970年以来的秒

4.根据调试层次控制输出

debug=2

test $debug -gt 0 && “A little data”

test $debug -gt 1 && “some more data”

test $debug -gt 2 && “even some more data”

5.ostype()

或者$OSTYPE

6.判断是否宕机

#!/bin/bash

set -x

islive()

{

node=$1

ping -n 3 $node >/dev/null>&1

if [[ $? -eq 1 ]]

then

echo "this node is down!"

else

echo "this node is ok"

fi

}

调用函数islive localhost

7.source 命令会执行库文件的赋值

或者使用 .

8. shell 参数的传递

$#参数个数

$1第一个参数

$n 第n个参数

$*所有参数

9.if 语句

if [ ]

then

else

fi

与 -a

或 -o

非 !

9.比较

显式字符串比较 “ string1” = ”string2”

数字比较 等于-qe 大于等于 -ge 小于等于-le 不等于-ne 大于-gt 小于-lt

10.echo -e 输出转义字符

echo -e “\t test test !\n” 输出两个tab test test !回车换行

11. egrep

12. getopts

geropts 命令又一系列有效选项激活,它分析确定哪个选项需要的参数。每次激活getopts时,它检查是否还有选项需要处理。如果有,它就获取下一个需要处理的选项(修改OPTIND的值),将其保存在环境变量(ARGS)并返回真,否则返回假。

while getopts

13.设置默认值

test -z $var && var=”default value ” ( test -z string 为零返回真)

或者 [ -z ] && var=”default value” (test 等同 [ ] )

最简洁 [ ! $var ] && var=”default value”

$var || var=”default value”

${var:=”default value”}

${ var:”default value”} var没被定义同:=

echo "${username:?$LOGNAME}" 若username未定义或空,则使用 $LOGNAME并退出,并显示脚本所运行的行数

echo "${username?$LOGNAME}" username没被定义同:?

${username:-$LOGNAME} +在username未被或空定义时才使用$LOGNAME

${username:+$LOGNAME} +在username被定义时才使用$LOGNAME

14.grep

v 参数

-I :忽略大小写

-c :打印匹配的行数

-l :从多个文件中查找包含匹配项

-v :查找不包含匹配项的行

-n:打印包含匹配项的行和行标

v RE(正则表达式)

\ 忽略正则表达式中特殊字符的原有含义

^ 匹配正则表达式的开始行

$ 匹配正则表达式的结束行

\< 从匹配正则表达式的行开始

\> 到匹配正则表达式的行结束

[ ] 单个字符;如[A]
即A符合要求

[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: