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 ...
随机推荐
- LG3781 [SDOI2017]切树游戏
题意 题目描述 小Q是一个热爱学习的人,他经常去维基百科学习计算机科学. 就在刚才,小Q认真地学习了一系列位运算符,其中按位异或的运算符\(\oplus\)对他影响很大.按位异或的运算符是双目运算符. ...
- 自定义redis session
1.思路 2.程序实现 1.用户系统类 这里模拟一个蹩脚的用户系统类(userSystem),如下: #coding=utf-8 #Redis实现用户系统 __author__ = 'beginman ...
- TCP和UDP Client 代码
最近学习要求做网络编程,使用从网上找了一些资料,主要是网络协议的分层等通讯,你可以查看英文版的资料:CScharp网络编程英文版 下面直接给出代码吧,我想一看应该就懂. TCP Client 代码: ...
- lvds cable信号
http://forums.bit-tech.net/showthread.php?t=208616
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
php中隐形字符65279(utf-8的BOM头)问题 今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出 ...
- 使用ffmpeg步骤(转)
av_register_all();//初始化ffmpeg库,如果系统里面的ffmpeg没配置好这里会出错 if (isNetwork) { //需要播放网络视频 avforma ...
- CentOS 6.6下 BCM4312 802.11b/g无线网卡驱动安装
1.目前www.broadcom.com网站上最新版本为hybrid-v35,但此版本与2.6.32不匹配,无法识别验证密码,搜索网上说是要求升级内核,后根据http://www.dadclab.co ...
- Phonegap 开发环境搭建
以Android为例介绍Phonegap开发环境搭建 一. 软件下载 1. JDK 8 下载 http://www.oracle.com/technetwork/java/javase/downloa ...
- jquery 绘图工具 flot 学习笔记
今天想做一个统计图表,像163博客的流量统计一样的,借助 flot 实现了,而且很简单. flot网址:http://code.google.com/p/flot/ 下载 JS 文件,使用方法和 jq ...
- 【linux】du命令
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...