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. 27_网络编程-初识socket

    一.C/S B/S 架构         1.定义             (1)C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Cl ...

  2. jsp的两个include了解

    在jsp中三大指令(page --  include -- taglib)中有一个 include 然后再三个动作标签中(include -- forward -- param)中也有一个includ ...

  3. Windows Phone开发手记-WinRT下自定义圆形ItemsControl

    这里的ItemsControl指的是Xaml里的集合控件,包括ListView,GridView等,此篇博客主要参考MSDN Blog的一篇文章,具体出处为:http://blogs.msdn.com ...

  4. JS常用工具函数(持续记录)

    1.设置获取cookie //方式1 //设置cookie function SetCookie(name, value)//两个参数,一个是cookie的名字,一个是值 { var Days = 3 ...

  5. Oracle 扩展表空间大小的几种方式

    环境:windows操作系统 增加表空间大小的四种方法Meathod1:给表空间增加数据文件 ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRO ...

  6. netcore高性能Web服务器Kestrel分析

    Kestrel是aspnetcore中的web服务器之一,其本身有跨平台,轻量级,高性能的特点 在 ryzen 1600 12核cpu 测试环境中,瞬间每秒处理请求数能达到2w5以上,与netty不相 ...

  7. 使用 Scrapyd 管理部署 Scrapy 的一些问题

    环境:Ubuntu Xenial (16.04) Scrapy 是一个不错的爬虫框架,但是不支持定时执行,常规的做法是使用 crontab 的方式进行定时执行 shell ,当爬虫数量多的时候,管理起 ...

  8. 读书笔记(02) - 可维护性 - JavaScript高级程序设计

    编写可维护性代码 可维护的代码遵循原则: 可理解性 (方便他人理解) 直观性 (一眼明了) 可适应性 (数据变化无需重写方法) 可扩展性 (应对未来需求扩展,要求较高) 可调试性 (错误处理方便定位) ...

  9. vue实现短信验证码登录

    无论是移动端还是pc端登录或者注册界面都会见到手机验证码登录这个功能,输入手机号,得到验证码,最后先服务器发送请求,保存登录的信息,一个必不可少的功能 思路 1,先判断手机号和验证是否为空, 2,点击 ...

  10. tensorflow 导入新的tensorflow实例

    因为涉及到同一台电脑多个GPU,在指定tensorflow图的时候,需要为不同的图指定不同的GPU,所以必须在导入tensorflow之前,指定可用的GPU def import_tf(device_ ...