Shell vs Shell脚本
Shell 环境
Shell 两种执行命令的方式
第一个Shell脚本
运行Shell脚本
下面是一个例子:
#!/bin/bash#set -xif [ $# -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" exitfi #if和fi是一对src=$1 #第一个参数dest=$2 #第二个参数tag=$3 #第三个参数 if [ 'a'$4'a' == 'aa' ] #这里aa随便取,它这里意思是判断,如果$4没有指定为空,默认读取deploy.conf then confFile=/home/hadoop/tools/deploy.confelse confFile=$4fiif [ -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" #既不是文件,也不是目录,就说找不到 fielse 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 文本包含---实例