百里登风

导航

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 文本包含---实例

 

posted on 2017-11-01 01:13  百里登峰  阅读(365)  评论(0编辑  收藏  举报