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、输入三个变量(字符串),比较最大长度的字符是谁并输出,(长度值)
2、遍历某路径下的内容时,并指定文件的类型(是否是文件夹)
3.1 打印1-100中的奇数 1 3 5 7 9 。。。
拨高:每10个元素换行
3.2、打印金三角
3、遍历指定路径下的所有子文件