Shell命令:是一串字符串命令
Shell脚本:有限的字符串命令的一个集合
1、Shell命令的解释器: /bin/bash
2、Shell格式:

#  !/bin/bash
		command...
3、Shell是一门弱语言:没有多个数据类型,只有一种类型:字符串
	定义变量:  变量名=值
	字符串表示法:  "hello"  'hello'  hello
			'字符串'  
			"字符串"  引用变量的内容
			字符串
			`字符串`  执行该字符串命令
	输出变量内容: $变量名   ${变量名}
					${#变量名}  字符串长度
					${v}

4、Shell输入输出:
标准输出: echo 值 输出行
printf 值 并不自动输出行
标准输入: read -p “提示” 变量名
5。注释符: #

6、test比较数值字符串或文件类型的命令
字符串: 字符的字符串 “abcd”
数值字符串: ”100“
字符串:
str1 = str2 是否相同
str1 != str2 是否不相同
数值:

INTEGER1 -eq INTEGER2	数值是否相等
	INTEGER1 -gt INTEGER2   >
				 -ge			>=
				 -lt			<
				 -le			<=

检查文件的类型:

-b   块设备
	-c   字符设备
	-d	 是否是文件夹
	-e   文件是否存在
	-f   普通文件
	-r   用户是否具备可读
	-w   用户是否具备可写
	-x   用户是否具备可执行

expr 算术表达式: + - * / %
注意: *在Shell中充当通配符,如果仅仅为一个*字符,

7、源文件:用高级语言编写代码的文件
c语言: .c
c++: .cpp .C
java .java
Shell .sh

8、流程控制:选择控制
执行command的顺序:从上往下逐条执行

if condition
		then
			command1
		else
			command1
		fi
		多分支:
		if condition1
		then
			command1
		elif condition2
		then
			command1
		。。。
		else
			command
		fi	
		嵌套if
		if condition1
		then
			if condition1_1
			then
				command1
			fi
		else
			command1
		fi

9、循环控制:重复的执行

for  var  in 值的列表中
	do
		command
	done
	eg:
	列表 =区间:
	for var in `seq  ls`
	do

done

10(( 数学表达式 ))
与C语言表达式没有区别

10、其他命令:
seq 提供一个区间序列

练习:
(非东湖)
1、输入三个变量(数值),比较最小值,最大值
(东湖)
1、输入三个变量(字符串),比较最大长度的字符是谁并输出,(长度值)

shell脚本 hadoop shell脚本基本命令_shell

2、遍历某路径下的内容时,并指定文件的类型(是否是文件夹)

shell脚本 hadoop shell脚本基本命令_shell_02


3.1 打印1-100中的奇数 1 3 5 7 9 。。。

拨高:每10个元素换行

shell脚本 hadoop shell脚本基本命令_脚本_03


3.2、打印金三角

shell脚本 hadoop shell脚本基本命令_字符串_04

3、遍历指定路径下的所有子文件