1: 脚本开始行
  #!/bin/bash
    这一行表明,不管用户选择的是那种交互式shell,该脚本需要使用bash shell来运行。
    由于每种shell的语法大不相同,所以这句非常重要。
2:变量
定义变量
  变量名称只能是字母开头,可以包涵字母,数字下划线。
  不能有点号
  不能用bash里的关键字
  variable="Variable" 变量名和变量值中间不能有空格
字符串
  单引号和双引号的区别
  单引号不会转译内容,会按原内容输出
  双引号会转译,有变量的会把变量的值输出
使用变量
$variable 前面要加$符号 标准做法是${variable} {}是用来区分边界的
如果想在变量后跟别的变量,就要用标准做法
导出变量
  export variableName
  意思其实就跟定义一个全局变量一样
3:特殊变量
  $$ 执行脚本的进程ID
  $n 输入参数 $1 第一个参数 $2 第二个参数 。。。
  $@ 输入的所有参数
  $* 输入的所有参数 当$*被 引号包围里表示所有参数会做为一个整体 "$1 $2..."
  $# 输入参数的总数量
  $? 上一个命令的返回值
  $HOME 家目录
  $PATH path路径
 
4:运算
  算术运算
+ - * / % 都可以进行, 注意乘法的时候要用\*
let result=a+b 注意空格
result=`expr $a + $b` 注意空格
上面两种都可以进行运算
逻辑运算
  数字运算
    -eq 相等
    -ne 不等
    -gt 大于
    -lt 小于
    -ge 大于等于
    -le 小于等于
  字符串
    = 两个字符串是否相等
    != 是否不等
    -z 字符串是长度是否为0(zero)
    -n 长度是否不为0
    str 字符是否为空
  文件测试
    -d 是否为目录
    -f 是否是普通文件
    -r 是否可读
    -w 是否可写
    -x 是否可执行
    -s 文件大小是否大于0
 
5: 条件判断
  if / then /fi
  if /then /else/fi
  if /then /elif /then /else /fi
 
  if [[ expression ]]; then
    statement
    :  (如果没有内容用冒号点位)
  fi
  判断条件与中括号之间要有空格,否则bash会认为是连在一起的字符
  a=10
  if [[ a -eq 10 ]]; then
    echo "a is equal 10"
  elif [[ a -gt 10 ]]; then
    echo "a is bigger than 10"
  else
    echo "a is lessthan 10"
  fi
 
6:case/esac
  case variable in
    case1) statement1
    ;;
    case2) statement2
    ;;
    *) statement3
    ;;
  esac
 
7:循环
  for 循环
    for 变量 in 列表
    do
    .......
    done
    for loop in 1 2 3 4 5
    do
    echo $loop
    done
 
  while 循环
    while boolean条件
    do
    .....
    done
  如果条件为true则断续执行
 
  until 循环
    until 执行条件
    do
    ...
    done
  如果条件为false,则一直断续执行
 
  跳出循环
  break, continue
  break可以跳出所有循环,如果是嵌套循环,则在break后面跟一个数字表示跟出第几层循环
  for var1 in arr1
  do
    for var2 in arr2
    do
      if [[ 条件 ]];then
        break 2
      fi
    done
  done
  上例中break 2是直接跳出最外层循环
8:函数
  function_name () {
    list of commands
    [ return value ]
  }
函数可以传参数
 

 

shell 快速入门的更多相关文章

  1. Shell 快速入门(十八):特殊符号的使用

    在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...

  2. Linux Bash Shell 快速入门

    BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

  3. Linux Bash Shell快速入门 (三)

    forfor 循环结构与 C 语言中有所不同,在 BASH 中 for 循环的基本结构是: for $var in dostatmentsdone 其中 $var 是循环控制变量, 是 $var 需要 ...

  4. 1.shell快速入门

    shell是什么?shell是一个命令行解释器,它提供了一个像linux内核发送请求以便运行程序的界面系统程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.说白了,shell就是用来和内 ...

  5. shell快速入门

    $? 表示上一个命令退出的状态,0表示执行正常,不等于0表示执行不正常. $$ 表示当前进程编号 $ 表示当前脚本名称 $# 表示参数的个数,常用于循环 $*和$@ 都表示参数列表 $n 表示n位置的 ...

  6. Linux Bash Shell快速入门 (二)

    BASH 中的变量介绍BASH 中的变量都是不能含有保留字,不能含有 "-" 等保留字符,也不能含有空格. 简单变量在 BASH 中变量定义是不需要的,没有 "int i ...

  7. Linux Bash Shell快速入门(一)

    BASH 的基本语法· 最简单的例子 —— Hello World! · 关于输入.输出和错误输出 · BASH 中对变量的规定(与 C 语言的异同) · BASH 中的基本流程控制语法 · 函数的使 ...

  8. 一文快速入门Shell脚本_了解Sheel脚本基本命令

    通过代码和注释的形式,列举了shell的基础操作,快速入门.shell在线编辑器 注释 单行用#号:多行::<<' 多行注释... '.:<<a 多行注释... a.:< ...

  9. Spark快速入门 - Spark 1.6.0

    Spark快速入门 - Spark 1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 快速入门(Quick Start) 本文简单介绍了Spark的使用方式.首 ...

随机推荐

  1. 转发:Xcode插件

    古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件.   1.全能搜索家CodePilot 2.0 你要找的是文件?是文件夹? ...

  2. SpringMVC 接收表单数据的方式 - Samuel - 博客频道 - CSDN.NET

    1.@RequestParam @RequestMapping(value = "/xxxx.do") public void create(@RequestParam(value ...

  3. JavaScript(二)---- 变量、数据类型和运算符

    变量 javaScript中的变量变量是弱类型的,用var来声明. javascript的变量声明格式: var 变量名 = 数据; 声明变量要注意的事项: 1. 在javascript中声明变量是 ...

  4. jquery.mustache.js使用

    作者:zccst jquery.mustache是用jQuery做了一层封装,提供了以下几个方法,让模板使用更便捷. 1,添加模板,使用异步的方式 var viewData = { name: 'Jo ...

  5. Android SDK开发包国内下载地址(转)

    想了解Android 应用开发,但可恨开发环境安装就困难重重,这里找到一个国内下载地址,特转来记录 Android SDK开发包国内下载地址

  6. Java中的条件编译(转)

    源:Java中的条件编译 一直以来,不知道怎么在Java中实现像C/C++一样的#ifdef...#endif这样的预编译宏,致使Java代码中一直用if判断,刚好刚才看到了解决办法,记录一下. C/ ...

  7. 长平狐 Cocos2d-x 的“HelloWorld” 深入分析

                              Cocos2d-x 的“HelloWorld” 深入分析 本节所用Cocos2d-x版本:cocos2d-1.0.1-x-0.12.0 不能免俗,一 ...

  8. List学习笔记

    List 特点:1.有序.2.可重复. ArrayList: 底层是数组,数组是有下标的. 会自动扩容,底层默认初始化容量是10,扩大之后的容量预设是原来容量的一半(jdk 1.8).以前好像是原容量 ...

  9. BootStrap TreeView使用示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. .net中的4种事务总结

    在 一个MIS系统中,没有用事务那就绝对是有问题的,要么就只有一种情况:你的系统实在是太小了,业务业务逻辑有只要一步执行就可以完成了.因此掌握事务处 理的方法是很重要,进我的归类在.net中大致有以下 ...