bash编程也叫shell编程

预定义变量

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

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

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

运算符

declare 声名变量的类型  
        declare [+/-][选项] 变量名

- 给变量设定类型属性

+ 取消变量的类型属性

-i 将变量声名为整数型

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

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

举例:

  1.  
  2. a=1
  3. b=2
  4. declare -i c = $a+$b
  5. c=$(($a+$b))
  6.  
  7. 注意用双小括号,因为Linux中认为一切皆为字符。
  8.  
  9. 如果不加()当成一个命令,shell脚本中Linux命令在 $() 中运行,当然可以直接写命令,如果则一些引用命令时 就要 $()

单分支if  条件语句

  1. if [ 条件判断式 ];then
  2. 程序
  3. fi
  4. or
  5. if [ 条件判断式 ]
  6. then
  7. 程序
  8. fi

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

  1. #!/bin/bash
  2.  
  3. #grep 获取行通配符
  4. #cut 获取列统配符,以 = 分割 2 获取第二列
  5. login_name=$(env | grep LOGNAME | cut -d "=" -f 2)
  6. #echo $login_name
  7.  
  8. if [ "$login_name" != "root" ]
  9.  
  10. then
  11. echo 'isnot root'
  12. 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.  
  7. if [ "$result" -lt '90' ]
  8. then
  9. echo 'the root dir is not full'
  10.  
  11. 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.  
  4. if [ -n "$result" ]
  5. then
  6. echo "$(date) nginx is ok !"
  7. else
  8. echo "$(date) nginx is not ok !"
  9.  
  10. sudo /etc/init.d/nginx start &>/dev/null
  11. echo "$(date) restart nginx !!"
  12. fi

多分支if语句

  1. if []
  2. then
  3. elif []
  4. then
  5. ...
  6. else
  7. ...
  8. if

Linux中bash编程的更多相关文章

  1. linux中shell编程

    shell编程 1 echo -e 识别\转义符 \a \b \t \n \x十六进制 \0八进制 等等 #!/bin/bash echo -e "hello world" 执行脚 ...

  2. Linux中Bash发现重大安全漏洞修改方法

    北京时间9月25日消息,Linux用户今天又得到了一个“惊喜”!Red Hat安全团队在 Linux 中广泛使用的Bash shell中发现了一个隐晦而危险的安全漏洞.该漏洞被称为“Bash Bug” ...

  3. 你应该掌握linux中Bash命令的一些快捷方式

    在本文中,我们将分享许多对任何Linux用户都有用的Bash命令行快捷方式.这些快捷方式可以快速地执行某些动作,例如访问和运行先前执行的命令,打开编辑器,在命令行上编辑/删除/更改文本,移动光标,控制 ...

  4. linux中shell编程 -->三剑客习题汇总

    目录 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 2.显示当前系统上的以root,centos或者user开头的信息 3.找出/etc/init.d/functio ...

  5. linux中网络编程<1>

    1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket---> ...

  6. Linux中bash的一些命令

    Linux——bash的简单使用 bash及其特性: 1.bash实质上是一个可执行的程序,一个用户的工作环境. 2.每一个shell下可以再打开一个shell,新打开的shell称为子shell,每 ...

  7. (转)关于linux中内核编程中结构体的赋值操作(结构体指定初始化)

    网址:http://blog.chinaunix.net/uid-24807808-id-3219820.html 在看linux源码的时候,经常会看到类似于下面的结构体赋值的代码: struct d ...

  8. Linux中bash shell环境变量

    别名 别名是命令的快捷方式.为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用.语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令.重要的 ...

  9. linux中 shell编程 判断服务是否运行

    判断nginx是否运行中: if ps -ef|grep "nginx"|egrep -v grep >/dev/null then echo ok! else echo n ...

随机推荐

  1. nodejs json-t 基本测试

    安装npm包 npm i json-templater or yarn add json-templater 基本代码 var render = require('json-templater/str ...

  2. celery docker 基本使用

    项目参考官网资料,比较简单的add task 具体代码参考https://github.com/rongfengliang/celery-docker-demo 项目结构 ├── README.md ...

  3. 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

    [先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...

  4. Servlet技术基础

    由于Servlet部分涉及较多的类,要想尽快掌握Servlet基础,必须熟悉使用这些类之间的关系以及其常用的方法. 主要讲解部分包括: 1)通过实现Servelt接口来编写Servlet 2)熟悉Se ...

  5. Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows

    Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...

  6. 自动获取 LDAP 基准 DN 列表

    问题描述 在使用 LDAP 协议从 Active Directory 等目录管理服务获取组织结构数据时,一般总是需要对目录的检索路径进行配置.但是由于实际使用中的目录组织结构通常会比较复杂,往往会出现 ...

  7. 20165233 实验二 Java面向对象程序设计

    20165233 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  8. OpenMP 简单的规约

    ▶ 简单的计算和规约 ● 第一种方法,将全局和的指针传入工作函数中进行加和,使用 critical 来控制临界区的访问 #include <stdio.h> #include <st ...

  9. GridEh Lookup

    Flexible adjustment of a lookup inplace editor 没有输入拼音码搜索功能. Drop-Down Forms 这个比较符合中国人的习惯,搜索框,不错,点下来箭 ...

  10. Spring Data JPA 基本使用

    Spring Data 简化开发,支持Nosql和关系型数据库, DEMO https://github.com/easonstudy/boot-demo/tree/master/boot-sprin ...