Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。下面为大家介绍六个Shell脚本命令常用技巧
1.如何实现Shell脚本以DEAMON的方式运行,即实现Shell版的Fork
if [ "$1" != 'background' ] ; then scriptdir=$(cd "$(dirname "$0")"; pwd) scriptname=`basename $0` nohup /bin/bash ${scriptdir}/${scriptname} background &>/dev/null & exit 0fiecho "do some thing"
2.如何获取当前shell脚本所在的文件夹路径
SHELLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3.如何正确判断变量,避免语法错误
[ "x$var" == "x" ]
4.如何kill一个进程树,即kill掉父进程和所有子进程(在没有找到命令之前,我在网上找到的shell版)
#使用方法,treekill pidtreekill(){ local father=$1 childs=(`ps -ef | awk -v father=$father 'BEGIN{ ORS=" "; } $3==father{ print $2; }'`) if [ ${#childs[@]} -ne 0 ] ; then for child in ${childs[*]} do treekill $child done fi kill -9 $father}
5.如何快速检测base脚本的语法错误,又不用执行脚本
#以下命令 并不会真正执行脚本,只会检查xx.sh的语法bash -n xx.sh
6.如何在bash中产生一定范围的随机数
## 使用方法 ####get_random 10 30function get_random() { local start_num=$1 local end_num=$2 local range1=`expr $end_num - $start_num` local range2=`expr $RANDOM % $range1` local ran_num=`expr $start_num + $range2` echo $ran_num}