Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125588
  • 博文数量: 165
  • 博客积分: 5957
  • 博客等级: 大校
  • 技术积分: 2015
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-24 15:04
文章分类

全部博文(165)

文章存档

2014年(10)

2013年(14)

2012年(9)

2011年(22)

2010年(17)

2009年(17)

2008年(26)

2007年(34)

2006年(16)

我的朋友

分类:

2007-10-30 12:40:14

1、退出代码0表明脚本执行成功.
 

exit 0

2、检测脚本必须以root执行

ROOT_UID=0
EXIT_NOTROOT=67
if [ "$UID" -ne "$ROOT_UID" ]
then
    echo "Must be root to run this script."
    exit $EXIT_NOTROOT
fi

3、精确计时监控

usleep 30 # 暂停 30 microseconds.

4、一种非常好的产生 "唯一" 的临时文件的办法

prefix=temp
suffix=$(date +%s)
filename=$prefix.$suffix
echo $filename

 
5、命令行参数检测
 

ERROR_NO_ARGS=65

if [ $# -eq 0 ]
then
    echo "Please invoke this script with one or more command-line arguments."
    exit $ERROR_NO_ARGS
fi

另一种:检测$1是否非空

不推荐使用if [ -n "$1" ]

推荐使用:

case "$1" in
    "") lines = 50
        ;;
    *) lines = $1
       ;;
esac

如果检查某参数为数值型,可以

   *[!0-9]*) echo "Usage: `basename $0` $1 can be numeric

6、输出文件的扩展名

filename=test.data
echo "${filename##*.}"

 
7、死循环的写法
 

while :
do
    operation-1
    operation-2
    ...
    operation-n
done

# 等同于:

# while true

# do

#     ...

 # done

8、置文件长度为0

: > data.xxx

# 文件"data.xxx"现在长度为0了    
# 作用相同于:cat /dev/null >data.xxx(或 echo >data.xxx也可以)
# 但是,用NULL(:)操作符不会产生一个新的进程,因为NULL操作符是内建的。

9、查询一个rpm安装包的描述,软件清单,和是否它能够被安装

#!/bin/bash
# rpm-check.sh
#
# 查询一个rpm安装包的描述,软件清单,和是否它能够被安装.
# 并把结果保存到一个文件中.
#
SUCCESS=0
ERROR_NOARGS=65

if [ -z "$1" ]
then
    echo "Usage: `basename $0` rpm-file"
    exit $E_NOARGS
fi

{
    echo
    echo "Archive Description:"
    rpm -qpi $1 # 查询软件包的描述.

    echo
    echo "Archive Listing:"
    rpm -qpl $1 # 查询软件包中的软件清单.

    echo
    rpm -i --test $1 # 查询该软件包能否被安装.

    if [ "$?" -eq $SUCCESS ]
    then
         echo "$1 can be installed."
    else
        echo "$1 cannot be installed."
    fi
    echo
} > "$1.test" # 把代码块的所有输出重定向到一个文件中。

echo "Results of rpm test in file $1.test"
exit 0

10、产生6位的随机数

date +%N | sed -e 's/000$//' -e 's/^0//'

阅读(1914) | 评论(0) | 转发(0) |
0

上一篇:shell模板

下一篇:python小常识(基础)

给主人留下些什么吧!~~