Linux 中 Bash 编程,这些值得一看~
Posted ITPUB技术小栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 中 Bash 编程,这些值得一看~相关的知识,希望对你有一定的参考价值。
bash 编程也叫 shell 编程,应该是目前 Linux 上最流行的 shell 脚本解释程序了(还有个 shell 叫 dash,我太讨厌这个东东了。),只要你在 linux 上工作,并且希望自己能够工作得更愉悦,那么你应该熟悉最基本的 bash 编程,因为它将给你的工作带来足够的幸福感。
预定义变量
$? 最后一次执行的命令的返回状态。如果这个变量的值为 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
与 100 + 技术大牛面对面
SACC2017
作为国内最受欢迎的架构师盛会,2017 第九届中国系统架构师大会 (SACC) 将于将于 2017 年 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。
大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。
点击 “阅读原文” 与 100 + 技术大牛面对面,立享购票 7.8 折优惠~
以上是关于Linux 中 Bash 编程,这些值得一看~的主要内容,如果未能解决你的问题,请参考以下文章