1). 条件表达式语法信息
    [ 1 -eq 1 ] && echo 1        <-- 表示条件成功,执行相应操作
    [ 1 -eq 1 ] || echo 1        <-- 表示条件失败,执行相应操作

[ 1 -eq 1 ] && {            <-- 表示条件成功,执行相应多个操作
        echo 1
        echo 2
    }        
    [ 1 -eq 1 ] || {            <-- 表示条件失败,执行相应多个操作
        echo 1
        echo 2
    }
    总结说明: 以上条件表达式用法相当于if单分支语句
              系统脚本中单分支判断都不用if来进行条件判断

[ 1 -eq 1 ] && {            <-- 表示条件成功,执行相应多个操作
        echo 1
        echo 2
    } || {
        echo 3                  <-- 表示条件失败,执行相应多个操作
        echo 4
    }
    总结说明: 以上条件表达式用法相当于if双分支语句
    
2). if条件语法信息
    if [ <测试表达式> ]            <-- 单分支if语句
    then
        指令信息...
    fi
    
    if [ <测试表达式> ]            <-- 双分支if语句
    then                            *补充: 在if语句中需要掌握冒号用法
        指令信息...
    else
        指令信息...
    fi    
    
    if [ <测试表达式> ]            <-- 多分支if语句
    then
        指令信息...
    elif [ <测试表达式> ]
    then
        指令信息...
    else
        指令信息...
    fi    
    总结说明: 多分支语句也可以类似于case条件语句

3). case条件语法信息
    a. 服务启动停止脚本(传参的个数有限)
    b. 根据菜单信息进行选择
    c. 有yes或no进行交互的时候
    case "变量" in
        1)
          指令01...
          ;;
        2)
          指令02...
          ;;
        3)
          指令03...
          ;;
        *)
          指令04...
    esac
    总结说明: case条件语句也可以类似于if多分支语句    
        
4). while循环语法信息
    while <测试表达式>
    do
        指令信息...
    done
    
    while true
    do
        指令信息...
        usleep xxx
    done
    总结说明: 实现守护进程方式运行
    
    while read line
    do
        指令信息...
    done<$1
    总结说明: 实现读取文件内容, 按行进行读取

5). for循环语法信息
    for 变量名 in 变量列表信息
    do
        循环指令信息...
    done
    
    for ((i=1;i<=10;i++))
    do
        循环指令信息...
    done
    
6). 函数编写方式
    function test(){
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }

function test {
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }

test(){
       local i                    <-- 设置函数局部变量信息
       return 11                <-- 设置函数执行调用后返回值信息
    }
    说明: 函数中如果有传参信息, 需要在调用函数时进行传参

shell 语法的更多相关文章

  1. makefile中的shell语法

    在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...

  2. Hadoop学习笔记之HBase Shell语法练习

    Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...

  3. Shell语法规范

    ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...

  4. shell语法习题练习进阶版

    第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码 ...

  5. 读完学会shell语法,shell脚本80%已经学会

    第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a ...

  6. shell语法

    基本语法列表 #linux组成:内核+工具 #linux启动: . getty:提示登录名和密码,输入之后调用login . login:login验证用户名和密码,然后调用shell . shell ...

  7. Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数

    if语法 :   if [ expression ]    then   commandselif [ expression2 ]   then   commandselse   commandsfi ...

  8. Shell 语法之结构化命令(流程控制)

    许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...

  9. shell语法快速入门(1)

    #得到绝对路径 DIR=$(cd `dirname $0`;pwd) $DIR/file.txt #去掉#注释 egrep -v "(#|^$)" /etc/zabbix/zabb ...

  10. shell语法基础

    一.变量 1.linux大小写敏感,变量取名要注意大小写.可以通过变量名前面加$来访问变量的内容.可以通过使用read命令来将用户输入的值赋给一个变量. 2.给变量赋值时,如果字符串中包含空格,就必须 ...

随机推荐

  1. Java 数据结构之数组

    public class Arrays {    //创建一个Integer空数组    public static Integer[] player=null;    //添加球员号码    pri ...

  2. 编写高质量代码改善C#程序的157个建议——建议6: 区别readonly和const的使用方法

    建议6: 区别readonly和const的使用方法 很多初学者分不清readonly和const的使用场合.在我看来,要使用const的理由只有一个,那就是效率.但是,在大部分应用情况下, “效率” ...

  3. linux 系统的ssh服务

    ssh服务由服务端软件Openssh和客户端(常见的有ssh,SecureCRT,putty,xshell)组成,ssh服务默认使用22端口提供服务,它有两个不兼容的ssh协议版本,分别是1.x和2. ...

  4. 转 XlsReadWriteII 的博文(自留参考)

    如何使用XlsReadWriteII在Delphi中读取Excel文件 XLSReadWriteII v5.20.01a for Delphi XE5 x32下载地址: http://download ...

  5. MSSQL 静态值查询

    有些时候可能会需要查询一些静态值 ), (),()) AS tabName ( c1 ) 演变1.多列 ,), (,),(,)) AS tabName ( c1,c2 ) 演变2.聚合 ), (),( ...

  6. vitamio MediaController总是显示在底部的问题

    前面一直用腾讯的x5 tas来播放视频,但是体验效果不好,不能设置播放页,无法获取用户对视频的学习情况,百度了下,发现好多人在使用vitamio,最新版本是5.0的,下载可能要花费点时间,官网上竟然没 ...

  7. 「BJOI2012」连连看

    题目链接 戳我 \(Solution\) 我们首先进行拆点操作,将每个点都拆成\(x\)和\(y\),将满足条件的两个点连起来就好了(记得要将\(x\)连\(y'\)的同时要将\(y\)联向\(x'\ ...

  8. fwrite()

    注:fwrite(),fread -可对数据块读写,且数据为二进制,文本下查看为乱码,文件的打开方式为 “b*” 实例: 写入二进制数据 for (int i = 0; i < SN; i++) ...

  9. MVC进阶篇(三)——model层数据验证

    前言 常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西.我写了一个小demo,分享给大家. 内容 一个表单的提 ...

  10. django 重写User表增加字段设置

    models中: from django.contrib.auth.models import AbstractUser lass User(AbstractUser): mobile = model ...