转码

# 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中字符串、数值的比較

linux 进程监控和自己主动重新启动的简单实现

shell基础语法以及监控进程不存在重新启动的更多相关文章

  1. shell 基础语法

    shell 基础语法 =============================================== 推荐:http://c.biancheng.net/cpp/shell/ ==== ...

  2. linux base shell 基础语法

    转载 本文主要是基础的基础,希望对大家有所帮助 一.Shell基本类型的变量: (1)Shell定义的环境变量: Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这 ...

  3. linux shell基础语法

    1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码 ...

  4. linux base shell 基础语法2

    转载 http://blog.csdn.net/aggrelxf/article/details/8263110 单引 双引 反引用[] [[]] 将命令的输出读入一个变量中,可以将它放入双引号中,即 ...

  5. 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...

  6. shell脚本语法基础汇总

    shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...

  7. linux shell脚本监控进程是否存在

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:    #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...

  8. shell基础 -- 基本语法

    本文介绍一下 shell 的语法. 一.变量 在 shell 里,使用变量之前通常并不需要事先为他们做出声明,需要使用的时候直接创建就行了.默认情况下,所有变量都被看做字符串并以字符串来存储,即使它们 ...

  9. shell基础之符号与语法

            shell脚本如今已经成为了一种非常普遍的脚本语言,之所以如此广泛的被应用,毋庸置疑它是有它的独到之处的.shell脚本语言和其它的语言比方说c/c++有何不同呢?c/c++等语言属于 ...

随机推荐

  1. 主机可以ping通虚拟机,但是虚拟机ping不通主机的方法(转)

    https://blog.csdn.net/hskw444273663/article/details/81301470

  2. MVCJSONJQuery分页实现

    思路: 1.用Ado.NET获取数据 2.控制器中创建一个方法参数为搜索条件 3.返回前台一个Json对象,把对象用一个类封装 4.用JQuery接收数据 public ActionResult In ...

  3. SqlServer基础语法(三)

    1.数据库备份的方法: 完整数据库备份GPOSDB 文件大小:23MB 日志备份 GPOSDB日志备份文件大小:211KB --完整备份 Backup DATABASE GPOSDB To disk= ...

  4. android Unable to inflate view tag without class attribute

    定位 到 问题 是 布局文件出错,   Unable to inflate view tag without class attribute 错误 原因 <view android:layout ...

  5. .NetCore源码阅读笔记系列之Security (三) Authentication & AddOpenIdConnect

    通过第二篇文章我们已经知道了授权的内部实现通过自定义的授权Handler来的,同样的道理 OpenIdConnect 同样是通过 OpenIdConnectHandler来请求授权的 那么它内部又是怎 ...

  6. poj 1679 判断MST是不是唯一的 (次小生成树)

    判断MST是不是唯一的 如果是唯一的 就输出最小的权值和 如果不是唯一的 就输出Not Unique! 次小生成树就是第二小生成树  如果次小生成树的权值和MST相等  那么MST就不是唯一的 法一: ...

  7. JVM启动过程

    JVM启动过程包括:加载.连接.初始化 1.加载:就是将class文件加载到内存.详细的说是,将class文件加载到运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封 ...

  8. Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  9. BZOJ5047 空间传送装置 2017年9月月赛 最短路 SPFA

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5047 题意概括 概括??~别为难语文做一题错两题的我了…… 题解 我们发现,对于某一种装置,有c种 ...

  10. 码云,git使用 教程-便签

    码云,git使用 教程-便签 Code cloud, git use tutorial - note 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.c ...