Linux中bash编程
bash编程也叫shell编程
预定义变量
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确的执行;如果这个变量返回的值非0(具体是那个数,有命令自己来决定),则证明上一个命令执行不正确。$$当前进程的进程号(PID)
$!后台运行的最后一个进程的进程号(PID)
运算符
declare 声名变量的类型
declare [+/-][选项] 变量名- 给变量设定类型属性
+ 取消变量的类型属性
-i 将变量声名为整数型
-x将变量什申明为环境变量
-p 显示指定变量的被声名的类型
举例:
- a=1
- b=2
- declare -i c = $a+$b
- c=$(($a+$b))
- 注意用双小括号,因为Linux中认为一切皆为字符。
- 如果不加()当成一个命令,shell脚本中Linux命令在 $() 中运行,当然可以直接写命令,如果则一些引用命令时 就要 $()
单分支if 条件语句
- if [ 条件判断式 ];then
- 程序
- fi
- or
- if [ 条件判断式 ]
- then
- 程序
- fi
判断登录用户是否为root用户:
- #!/bin/bash
- #grep 获取行通配符
- #cut 获取列统配符,以 = 分割 2 获取第二列
- login_name=$(env | grep LOGNAME | cut -d "=" -f 2)
- #echo $login_name
- if [ "$login_name" != "root" ]
- then
- echo 'isnot root'
- fi
判断根分区的占用率
- #!/bin/bash
- #df -h 任性话显示磁盘的利用率
- #awk 获取第五列
- #cut 对字符用 % 进行分割 获取第一列值
- result=$( df -h | grep sda1 | awk '{print $5}' | cut -d % -f 1)
- if [ "$result" -lt '90' ]
- then
- echo 'the root dir is not full'
- fi
双分支if条件语句
- if [ 条件判断式 ]
- then
- ...
- else
- ...
- fi
判断nginx 是否在运行 (最好不用包含nginx作为文件名)
- #!/bin/bash
- result=$(ps aux | grep nginx | grep -v grep)
- if [ -n "$result" ]
- then
- echo "$(date) nginx is ok !"
- else
- echo "$(date) nginx is not ok !"
- sudo /etc/init.d/nginx start &>/dev/null
- echo "$(date) restart nginx !!"
- fi
多分支if语句
- if []
- then
- elif []
- then
- ...
- else
- ...
- if
Linux中bash编程的更多相关文章
- linux中shell编程
shell编程 1 echo -e 识别\转义符 \a \b \t \n \x十六进制 \0八进制 等等 #!/bin/bash echo -e "hello world" 执行脚 ...
- Linux中Bash发现重大安全漏洞修改方法
北京时间9月25日消息,Linux用户今天又得到了一个“惊喜”!Red Hat安全团队在 Linux 中广泛使用的Bash shell中发现了一个隐晦而危险的安全漏洞.该漏洞被称为“Bash Bug” ...
- 你应该掌握linux中Bash命令的一些快捷方式
在本文中,我们将分享许多对任何Linux用户都有用的Bash命令行快捷方式.这些快捷方式可以快速地执行某些动作,例如访问和运行先前执行的命令,打开编辑器,在命令行上编辑/删除/更改文本,移动光标,控制 ...
- linux中shell编程 -->三剑客习题汇总
目录 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 2.显示当前系统上的以root,centos或者user开头的信息 3.找出/etc/init.d/functio ...
- linux中网络编程<1>
1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket---> ...
- Linux中bash的一些命令
Linux——bash的简单使用 bash及其特性: 1.bash实质上是一个可执行的程序,一个用户的工作环境. 2.每一个shell下可以再打开一个shell,新打开的shell称为子shell,每 ...
- (转)关于linux中内核编程中结构体的赋值操作(结构体指定初始化)
网址:http://blog.chinaunix.net/uid-24807808-id-3219820.html 在看linux源码的时候,经常会看到类似于下面的结构体赋值的代码: struct d ...
- Linux中bash shell环境变量
别名 别名是命令的快捷方式.为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用.语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令.重要的 ...
- linux中 shell编程 判断服务是否运行
判断nginx是否运行中: if ps -ef|grep "nginx"|egrep -v grep >/dev/null then echo ok! else echo n ...
随机推荐
- nodejs json-t 基本测试
安装npm包 npm i json-templater or yarn add json-templater 基本代码 var render = require('json-templater/str ...
- celery docker 基本使用
项目参考官网资料,比较简单的add task 具体代码参考https://github.com/rongfengliang/celery-docker-demo 项目结构 ├── README.md ...
- 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
- Servlet技术基础
由于Servlet部分涉及较多的类,要想尽快掌握Servlet基础,必须熟悉使用这些类之间的关系以及其常用的方法. 主要讲解部分包括: 1)通过实现Servelt接口来编写Servlet 2)熟悉Se ...
- Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows
Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...
- 自动获取 LDAP 基准 DN 列表
问题描述 在使用 LDAP 协议从 Active Directory 等目录管理服务获取组织结构数据时,一般总是需要对目录的检索路径进行配置.但是由于实际使用中的目录组织结构通常会比较复杂,往往会出现 ...
- 20165233 实验二 Java面向对象程序设计
20165233 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- OpenMP 简单的规约
▶ 简单的计算和规约 ● 第一种方法,将全局和的指针传入工作函数中进行加和,使用 critical 来控制临界区的访问 #include <stdio.h> #include <st ...
- GridEh Lookup
Flexible adjustment of a lookup inplace editor 没有输入拼音码搜索功能. Drop-Down Forms 这个比较符合中国人的习惯,搜索框,不错,点下来箭 ...
- Spring Data JPA 基本使用
Spring Data 简化开发,支持Nosql和关系型数据库, DEMO https://github.com/easonstudy/boot-demo/tree/master/boot-sprin ...