1、运算符:

  1、基本语法:$((运算式))或$[运算式]

  2、expr + n  // 注意运算符中间有空格

  再用expr时要加 ` ` 号,* 号加转义字符\  \* ,表示乘

2、判断语句

  [ condition ]  // 注意condition前后要有空格,非空返回true,可使用$?验证(0位true >1位false)

  两个数比较

  = 字符串比较

  -lt 小于

  -le 小于等于

  -eq 等于

  -gt 大于

  -ge 大于等于

  -ne 不等于

  文件权限比较

  -r 有读的权限

  -w 有写得权限

  -x 有执行得权限

  按照文件类型判断

  -f 文件存在并且是一个常规文件

  -e 文件存在

  -d 文件存在并是一个目录

  例:

    [ 22 -lt 23]

    [ -w shtu.txt ]

    [ -e /root/sh.log ]

  注意: 前后空格

3、流程控制

  if 判断

    if [ 条件判断式 ];then

      .....

    elif [ 条件判断式 ];then

      ......

    else

      ......

    fi

    或者

    if [ 条件判断式 ]

    then

      .....

    fi

   注意;if后面的空格和条件判断式前后的空格

  case语句:

    case $变量名 in

      值1)

      .........  // 如果值等于1,侧执行1

    ;;

    值2)

      .........  // 如果值等于2,则执行2

    ;;

    esac

  for循环:

    for 变量 in 值1 值2 .... 或者可以是一个数组

      do

        ....

      done

    或者:

    for (( i=1; i<10; i=$i+1 ))

    do

      ....

    done

  while循环:

    while[ 条件判断式 ]

    do

      .....

    done

4、read读取控制台输入

  read(选项)(参数)

  选项;

    -p : 指定读取值时的提示符

    -t : 指定读取值时的等待时间

  参数:

    变量:指定读取值的变量名

  例:read -p "你的名字:" name  // 注意空格,在shell脚本用的时候加 ` ` 包着

5、函数

  basename 文件路径  // 删除所有前缀包括最后一个 / ,只留下一个文件名, 在shell脚本中使用时要用  `  ` 包着

  dirname 文件路径   // 去除文件名,返回一个路径 。在shell脚本中使用时要用  ` ` 包着,

  注意:在shell脚本中运行一些命令时,如果不管用,用  ` ` 包着使用。例; `pwd -p`  

shell_语法的更多相关文章

  1. linux bash 的基础语法

    示例均来自网络,附带有原始链接地址,自己练习整理发出,均测试可用 linux shell 基本语法 - 周学伟 - 博客园 https://www.cnblogs.com/zxouxuewei/p/6 ...

  2. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  3. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  4. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  5. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  6. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  7. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  8. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  9. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

随机推荐

  1. Flask系列07--Flask中的CBV, 蓝图的CBV

    一.CBV使用 class base view 和django中类似 class Login(views.MethodView): # methods=["POST"," ...

  2. MariaDB 表的基本操作(3)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  3. 「PKUSC2018」主斗地(暴搜)

    这道斗地主比 \(PKUWC\) 那道可做多了... 我们用 \(NOIP\) 那道斗地主的思路:暴搜出三代和四代,贪心出散牌. 还有jry为什么要出xx网友而不出他的另一个老婆 我们发现两个人的每回 ...

  4. SpringCloud之Fegin

    Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易.使用Fegin创建一个接口并对它进行注解.它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持 ...

  5. js 标准二维数组变一维数组的方法

    问题:[[0, 1], [2, 3], [4, 5]] -> [0, 1, 2, 3, 4, 5]? 方法一 利用es5的arr.reduce(callback[, initialValue]) ...

  6. 【并发】3、LockSupport阻塞与唤醒,相较与wait和notify

    我们可以使用wait和notify分别对象线程进行阻塞或者唤醒,但是我们也可以使用LockSupport实现一样的功能,并且在实际使用的时候,个人感觉LockSupport会更加顺手 范例1,wait ...

  7. Oracle的卸载过程步骤

    用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设置->控制面板-& ...

  8. (转)Python3入门之线程threading常用方法

    原文:https://www.cnblogs.com/chengd/articles/7770898.html https://blog.csdn.net/sunhuaqiang1/article/d ...

  9. (转)Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)

    原文:http://www.cnblogs.com/xiaozhiqi/p/5778856.html https://blog.csdn.net/zong596568821xp/article/det ...

  10. JAVA框架之Spring【Spring事务详解】

    spring提供的事务管理可以分为两类:编程式的和声明式的.编程式的,比较灵活,但是代码量大,存在重复的代码比较多:声明式的比编程式的更灵活.编程式主要使用transactionTemplate.省略 ...