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


