« 上一篇下一篇 »

Shell脚本命令的六个常用技巧

    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}