川山甲

追求内心的非常平静!瞬间清空所有的杂念,达到物我两忘!

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理
  105 随笔 :: 0 文章 :: 1591 评论 :: 82万 阅读
 
 
思维导图
 
 

 
 
 
  把这几天常用的一些方法积累下来,以便以后使用。这只是基础应用,如果你是这方面的高手,望请多指教。
 
 
写一个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。——这几个命令在实际应用中非常有用,我还没学习过这几个命令。
 
推荐
 

 

posted on   川山甲  阅读(2562)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示