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. 关于 kali linux

    2.更新系统:首先更换一个速度快点的国内源(1) lsb_release -a先看你的版本,是Rolling还是其他什么(2) leafpad /etc/apt/sources.list(源的默认文件 ...

  2. JQuery的页面操作

    window.location = "http://www.xxxxxxxx.net" 跳转后有后退功能 其实应该是 window.location.hrefwindow.loca ...

  3. Python 库,资源

    库名称简介 Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主要用于在终端或浏览器端构建格式 ...

  4. diamond的设计思路

    diamond主要包含四个包:diamond-client.diamond-sdk.diamond-server和diamond-util client就非常简单的进行http的调用server拿数据 ...

  5. Java知识锦囊

    最近突然想回顾一下之前的文章,回顾复习一下,正好把觉得还不错的文章收录到这里,方便查阅 Java 2018-04-02 Java计数器之CountDownLatch.CyclicBarrier.Sem ...

  6. 小记 ArchLinux 下 Typora 无法输入中文

    今天准备写一篇 Linux 下的打印机文章,打开 Typora 时我发现不管我怎么设置都无法输入中文. pacman -R typora pacman -S typora 重新安装是无效的,我突然想起 ...

  7. odoo开发笔记-日期时间相关操作

    日期格式化字符串:DATE_FORMAT = "%Y-%m-%d" 日期时间格式字符串:DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" ...

  8. c++中char类型字符串拼接以及int类型转换为char类型 && 创建文件夹

    如下所示: #include <iostream> #include <windows.h> #include <cstring> using namespace ...

  9. PHP:判断客户端是否使用代理服务器及其匿名级别

    要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断. 具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器. 匿名级别可以参考下表来判断. 给出一个 ...

  10. Ruby:多线程队列(Queue)下载博客文章到本地

    Ruby:多线程下载博客文章到本地的完整代码 #encoding:utf-8 require 'net/http' require 'thread' require 'open-uri' requir ...