zoukankan      html  css  js  c++  java
  • shell脚本

    Shell vs Shell脚本

     

    Shell 环境

    Shell 两种执行命令的方式

    第一个Shell脚本

    运行Shell脚本

    下面是一个例子:

    #!/bin/bash
    #set -x
    if [ $# -lt 3 ]   #$#是传递到脚本的参数个数,如果参数个数小于3退出
    then
      echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag"
      echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile"
      exit
    fi #if和fi是一对
    src=$1  #第一个参数
    dest=$2  #第二个参数
    tag=$3  #第三个参数    
    if [ 'a'$4'a' == 'aa' ]     #这里aa随便取,它这里意思是判断,如果$4没有指定为空,默认读取deploy.conf  
    then
      confFile=/home/hadoop/tools/deploy.conf
    else
      confFile=$4
    fi
    if [ -f $confFile ]    #如果$confFile文件存在
    then
      if [ -f $src ]    #如果$src存在且为普通文件
      then  #先读取$confFile文件, grep  -v排除以#开头,grep匹配包含$tag所有行,    awk -F通过','解析
            #每行数据,然后只获取第一列数据(即为hostname数组)
        for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
        do
           scp $src $server":"${dest}      #远程复制文件
        done
      elif [ -d $src ]      #如果$src是文件目录 
      then   #先读取$confFile文件, grep  -v排除以#开头,grep匹配包含$tag所有行,    awk -F通过','解析
             #每行数据,然后只获取第一列数据(即为hostname数组)
        for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
        do
           scp -r $src $server":"${dest}      #则递归拷贝过去  
        done
      else
          echo "Error: No source file exist"    #既不是文件,也不是目录,就说找不到
      fi
    else
      echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
    fi

    Shell 变量
    Shell变量---定义变量

     

    Shell变量---使用变量

     

    Shell 变量---只读变量

     

    Shell 变量---删除变量

     Shell变量---变量类型

    Shell 字符串---单引号

     Shell 字符串---双引号

     Shell 字符串---拼接字符串

    Shell 字符串---获取字符串长度

     

    Shell 字符串---提取子字符串

    Shell 字符串---查找子字符串

    Shell 数组

    Shell 数组---定义数组

     Shell 数组---读取数组

     Shell 数组---获取数组长度

    Shell 注释

    Shell 参数传递

                                            Shell 基本运算符

     

    关系运算符

     

    布尔运算符

    逻辑运算符

    字符串运算符

    文件测试运算符

         

                       Shell echo 命令

    显示普通字符串

    显示转义字符

    显示变量

    显示换行

    显示不换行

    其他操作

    Shell printf

    Shell printf---格式替代符

    Shell printf---实例1

    Shell printf---实例2

    Shell printf---printf的转义序列

    Shell test命令

    Shell test 命令---数值测试---实例

    Shell test 命令---字符串测试---实例

     Shell test 命令---文件测试---实例1

    Shell test 命令---文件测试---实例2

    Shell 流程控制

    Shell 流程控制---if else

    Shell 流程控制---for 循环

    Shell 流程控制---for 循环---实例

     

    Shell 流程控制---while 循环

     

    Shell 流程控制---while 循环---实例

    Shell 流程控制---无限循环

    Shell 流程控制---until 循环

    Shell 流程控制---case

    Shell 流程控制---case---实例

    Shell 流程控制---跳出循环

    Shell 函数

    Shell 函数---实例1

    Shell 函数---实例2

    Shell 函数参数

    Shell 输入输出

    Shell 输入输出重定向

    Shell 输出重定向---实例

    Shell 输入重定向

     

    Shell 输入重定向---实例

     Shell 输入重定向---/dev/null 文件

    Shell 文件包含

     

    Shell 文本包含---实例

  • 相关阅读:
    php类和对象: 类常量
    类和对象:静态属性、静态方法
    类和对象: 构造方法
    类和对象:成员属性、成员方法 — 学习笔记3
    类和对象:创建对象
    类和对象:类与对象定义
    可扩展定制可复用的倒计时插件
    SeaJS入门
    JS可复用的多条件筛选插件
    谁说转载的文章用户就不喜欢了?
  • 原文地址:https://www.cnblogs.com/braveym/p/7751788.html
Copyright © 2011-2022 走看看