Linux 中 Bash 编程,这些值得一看~

Posted ITPUB技术小栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 中 Bash 编程,这些值得一看~相关的知识,希望对你有一定的参考价值。

点击上方“CU技术社区”一起玩耍哦~


bash 编程也叫 shell 编程,应该是目前 Linux 上最流行的 shell 脚本解释程序了(还有个 shell 叫 dash,我太讨厌这个东东了。),只要你在 linux 上工作,并且希望自己能够工作得更愉悦,那么你应该熟悉最基本的 bash 编程,因为它将给你的工作带来足够的幸福感。


预定义变量 

        $? 最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确的执行;如果这个变量返回的值非 0(具体是那个数,有命令自己来决定),则证明上一个命令执行不正确。 

        $$ 当前进程的进程号(PID) 

        $! 后台运行的最后一个进程的进程号 (PID) 

  运算符 

        declare 声名变量的类型   

        declare [+/-][选项] 变量名 

        - 给变量设定类型属性 

        + 取消变量的类型属性 

        -i 将变量声名为整数型 

        -x 将变量什申明为环境变量 

        -p 显示指定变量的被声名的类型

举例


 
   
   
 
  1. a=1

  2. b=2

  3. declare -i c = $a+$b

  4. c=$(($a+$b)) 注意用双小括号,因为Linux中认为一切皆为字符。

  5. 如果不加()当成一个命令,shell脚本中Linux命令在 $() 中运行,

  6. 当然可以直接写命令,如果则一些引用命令时 就要 $()


单分支 if  条件语句


 
   
   
 
  1. if [ 条件判断式 ];then

  2.    程序

  3. fi

  4. or  

  5. if [ 条件判断式 ]

  6.    then

  7.        程序

  8. fi


判断登录用户是否为 root 用户:


 
   
   
 
  1. #!/bin/bash

  2. #grep 获取行通配符

  3. #cut 获取列统配符,以 = 分割 2 获取第二列

  4. login_name=$(env | grep LOGNAME | cut -d "=" -f 2)

  5. #echo $login_name

  6. if [ "$login_name" != "root" ]

  7.        then

  8.                echo 'isnot root'

  9. fi


判断根分区的占用率


 
   
   
 
  1. #!/bin/bash

  2. #df -h 任性话显示磁盘的利用率

  3. #awk 获取第五列

  4. #cut 对字符用 % 进行分割 获取第一列值

  5. result=$( df -h | grep sda1 | awk '{print  $5}'  | cut -d % -f 1)

  6. if [ "$result" -lt '90' ]

  7.        then

  8.                echo 'the root dir  is not full'

  9. fi


双分支 if 条件语句


 
   
   
 
  1. if [ 条件判断式 ]

  2.    then

  3.         ...

  4.    else

  5.        ...

  6. fi


判断 nginx 是否在运行 (最好不用包含 nginx 作为文件名)


 
   
   
 
  1. #!/bin/bash

  2. result=$(ps aux | grep nginx | grep -v grep)

  3. if [ -n "$result" ]

  4.        then

  5.                echo "$(date) nginx is ok !"

  6.        else

  7.                echo "$(date) nginx is not ok !"

  8.                sudo /etc/init.d/nginx start &>/dev/null

  9.                echo "$(date) restart nginx !!"

  10. fi


多分支 if 语句


 
   
   
 
  1. if []

  2.    then

  3. elif []

  4.    then

  5. ...

  6. else

  7.   ...

  8. if


与 100 + 技术大牛面对面

SACC2017

作为国内最受欢迎的架构师盛会,2017 第九届中国系统架构师大会 (SACC) 将于将于 2017 年 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。


大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。

点击 “阅读原文” 与 100 + 技术大牛面对面,立享购票 7.8 折优惠~

以上是关于Linux 中 Bash 编程,这些值得一看~的主要内容,如果未能解决你的问题,请参考以下文章

学习编程:如何提高编程技术?这几个网站值得一看

编程对于孩子的数学学习到底有多重要?值得家长一看

机器学习很枯燥,不想继续学了怎么办?或许,这些建议值得一看

值得一看的书之《精通正则表达式》

Linux系统值得一看的学习方法及路线图

Linux系统值得一看的学习方法及路线图