X皮书之shell 常用代码

 
 
思维导图
 
 

 
 
 
  把这几天常用的一些方法积累下来,以便以后使用。这只是基础应用,如果你是这方面的高手,望请多指教。
 
 
写一个die函数
 
 
#!/bin/bash

die () {
    echo "ERROR: $1. Aborting "
    exit 1
}

mkdir -p `dirname "/etc/zhoubc/test.sh"` || die "Could not create directory"
echo "OK"

exit 0

                                     看看它的运行情况

 
必须以root帐号运行本脚本
 
#!/bin/bash

if [ `whoami` != "root" ] ; then
    echo "You must run this script as root. Sorry!"
    exit 1
fi

exit 0

                                     看看它的运行情况

还有一种写法(我比较喜欢上面的写法):

#!/bin/bash

if [ "$UID" -ne 0 ] ; then
    echo "You must run this script as root. Sorry! Your uid:$UID root_uid:0"
    exit 1
fi

exit 0

                                     看看它的运行情况

命令行传参
 
#!/bin/bash

case $1 in
    "start" )
        echo "You Input The Commond:start"
        ;;  
    "stop" )
        echo "You Input The Commond:stop"
        ;;  
    "restart" )
        echo "You Input The Commond:restart"
        ;;  
    * ) 
        echo "$0 { start | stop | restart }"
        ;;  
esac

exit 0

                                     看看它的运行情况

杀掉指定进程
 
#!/bin/bash

#读出进程要杀进程的ID号
pid=`ps aux | grep $1 | grep -v grep | awk '{print $2}'`

#开杀
if [ "$pid" != "" ] ; then
    kill -9 $pid &>/dev/null
fi

exit 0

                                     看看它的运行情况

 

还有一种杀进程的方式

pkill -9 -f  $1

 

 

 
局部扫盲
 
  ♥  特殊文件/dev/null(位桶):传送到此文件的数据都会被系统丢掉。——当你不需要输出的时候,非常有用
        也就是说当程序将数据写入到此文件的时,会认为它已成功完成写入数据的操作,但实际上什么事都没做。
  
#!/bin/bash

echo "No output" > /dev/null
echo "Output"

exit 0

                                     看看它的运行情况

  ♥  捕获退出状态(用$?捕获):0为表示“成功”,其他任何退出状态都为失败。

#!/bin/bash
ls -l /dev/null
echo $?

ls nofile # ls一个不存在的文件
echo $?

exit 0

                                     看看它的运行情况

  ♥  文件描述符:Unix以小整数数字表示每个进程的打开文件。(注意空格)

文件描述符 代表的意义
0 标准输入
1 标准输出
2 标准错误输出

                                     我们来看那几个文件都输出了什么东东?

总结
 
  归纳总结以方便下次使用。——送一句话,不积跬步无以致千里。
 
  未提及,我必须要学会的几个命令:awk、test、sort、sed。——这几个命令在实际应用中非常有用,我还没学习过这几个命令。
 
推荐
 
喜欢编程
原文地址:https://www.cnblogs.com/baochuan/p/2767523.html