1、退出代码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) |