shell基础语法以及监控进程不存在重新启动
转码
# dos2unix ./test.sh
权限
# chmod a+x ./test.sh
语法
变量
var="111"
echo $var
echo ${var}
运算
no1=4;
no2=5;
let result=no1+no2
echo $result;
自增自降低
let no++
let no--
[]和let相似
result=$[ no1 + no2 ]
result=$[ $no1 + 5 ]
也能够使用(()),但使用(())时。变量名前须要加上$
result=$(( $no1 + 5 ))
expr也能够用于基本算术操作
result=`expr 3+4`
result=$(expr $no1 + 5)
以上不支持浮点
bc能够浮点
echo "4*0.56" |bc 输出2.24
文件描写叙述符
0 1 2 标准输入 输出 标准错误
重定向到文本
echo "123" > temp.txt
追加
echo "123" >> temp.txt
查看文件内容
cat temp.txt
cat 1.txt 2.txt 多个内容
ls +
非法參数输出错误信息stderr
命令错误并退回 返回非0的退出状态
成功完毕返回数字0
退出状态能够从特殊变量$?获得,在命令执行完后立马执行echo $?就能够打印退出状态
ls + >out.txt 错误信息不能输出到文本
ls + 2>out.txt 错误信息能输出到文本
stderr和stdout各自
cmd 2>stderr.txt 1>stdout.txt
stderr转换为stdout
cmd 2>&1 out.txt
或者
cmd &> out.txt
stderr重定向到
/dev/null
读取日期
date
函数定义
function fname()
{
return 0;返回值
}
函数调用
$fname;
$fname arg1 arg2;传參数
一定要注意[]空格
#! /bin/sh a=4;
b=5; if [ "$a" = "$b" ]; then
echo "1111"
#####
#! /bin/sh a=4;
b=5; if [ "$a" -eq "$b" ]
then
echo "yyyyyyyyyy"
else
echo "nnnnn"
fi
#####
#! /bin/sh
ps aux|grep redis-stat | grep -v grep| wc -l
a=11
b=11
if [ $a -eq $b ]
then
echo "start process....."
else
echo "runing....."
fi
#####
注意<之类须要(())
以下这个监控redis进程不存在就重新启动
#! /bin/sh p="redis-server"
proc_num()
{
num=`ps aux|grep $p | grep -v grep| wc -l`
return $num
} proc_num
n=$? if (( "$n" < 1 ))
then
echo $n
echo "start redis-server process....."
else
echo $n
echo "redis-server runing ok."
fi
#####
crontab -e每分钟监控一次
*/1 * * * * /redis.sh
參考:《Linux Shell脚本攻略(第2版)》
shell基础语法以及监控进程不存在重新启动的更多相关文章
- shell 基础语法
shell 基础语法 =============================================== 推荐:http://c.biancheng.net/cpp/shell/ ==== ...
- linux base shell 基础语法
转载 本文主要是基础的基础,希望对大家有所帮助 一.Shell基本类型的变量: (1)Shell定义的环境变量: Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这 ...
- linux shell基础语法
1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码 ...
- linux base shell 基础语法2
转载 http://blog.csdn.net/aggrelxf/article/details/8263110 单引 双引 反引用[] [[]] 将命令的输出读入一个变量中,可以将它放入双引号中,即 ...
- 用shell脚本监控进程是否存在 不存在则启动的实例
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...
- shell脚本语法基础汇总
shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...
- linux shell脚本监控进程是否存在
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...
- shell基础 -- 基本语法
本文介绍一下 shell 的语法. 一.变量 在 shell 里,使用变量之前通常并不需要事先为他们做出声明,需要使用的时候直接创建就行了.默认情况下,所有变量都被看做字符串并以字符串来存储,即使它们 ...
- shell基础之符号与语法
shell脚本如今已经成为了一种非常普遍的脚本语言,之所以如此广泛的被应用,毋庸置疑它是有它的独到之处的.shell脚本语言和其它的语言比方说c/c++有何不同呢?c/c++等语言属于 ...
随机推荐
- Mac 下 Redis 5.0 的卸载与安装
卸载 停止 redis 服务器 redis-cli shutdown 检测 #检测后台进程是否存在 ps -ef |grep redis #检测6379端口是否在监听 netstat -lntp | ...
- springboot项目连接数据库报错
学习SpringBoot也没有多久,今天SpringBoot连接数据库的时候报如下错误: java.sql.SQLException: The server time zone value '�й�� ...
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
- 【BZOJ4927】第一题 双指针+DP
题解: 虽然是过了,不过做的十分智障 首先是有 2根 2 1 1 , 3根 1 1 1 这两种方法 然后考虑2 2 1 1 two-point-two没啥好说的 3 1 1 1 我很智障的以为数据范围 ...
- Ubuntu/Linux网络配置常用命令
配置ip 打开配置文件 sudo vim /etc/network/interfaces # This file describes the network interfaces available ...
- BZOJ1192 [HNOI2006]鬼谷子的钱袋 数学推理
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1192 题意概括 把一个数m拆成很多数字. 问至少拆成多少个数字,1~m中的所有数字才可以用这些数字 ...
- MQ确认机制之事务机制------tx
一:介绍 1.介绍 在前面的说的模式中会出现一个问题. 就是生产者将消息发送出去到底有没有到达rabbitMq,默认情况下是不知道. 有两种解决方式. AMQP实现事务机制 Confirm机制. 这里 ...
- [OpenCV-Python] OpenCV 中机器学习 部分 VIII
部分 VIII机器学习 OpenCV-Python 中文教程(搬运)目录 46 K 近邻(k-Nearest Neighbour ) 46.1 理解 K 近邻目标 • 本节我们要理解 k 近邻(kNN ...
- hdu 2036 求多边形面积 (凸、凹多边形)
<题目链接> Problem Description “ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地.谢谢!(乐队奏乐)” 话说部分学生心态极好,每天就知道游戏,这次考 ...
- HDU 2639 骨头收集者 II【01背包 】+【第K优决策】
题目链接:https://vjudge.net/contest/103424#problem/H 题目大意:与01背包模板题类似,只不过要我们求第K个最大的总价值. 解题分析: 其基本思想是将每个状态 ...