SHELL
第 4 章 运算符
1)基本语法
“$((运算式))” 或 “$[运算式]”
2)案例实操:
计算(2+3)* 4 的值
第 5 章 条件判断
1)基本语法
(1)test condition
(2)[ condition ](注意 condition 前后要有空格)
使用双小括号可以使用<>=等特殊符号
注意:条件非空即为 true,[ atguigu ]返回 true,[ ] 返回 false。
2)常用判断条件
(1)两个整数之间比较
-eq 等于(equal) -ne 不等于(not equal)
-lt 小于(less than) -le 小于等于(less equal)
-gt 大于(greater than) -ge 大于等于(greater equal)
注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。
(2)按照文件权限进行判断
-r 有读的权限(read)
-w 有写的权限(write)
-x 有执行的权限(execute)
(3)按照文件类型进行判断
-e 文件存在(existence)
-f 文件存在并且是一个常规的文件(file)
-d 文件存在并且是一个目录(directory)
第 6 章 流程控制(重点)
6.1 if 判断
1)基本语法
(1)单分支
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
(2)多分支
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
注意事项:
①[ 条件判断式 ],中括号和条件判断式之间必须有空格
②if 后要有空格
6.2 case 语句
1)基本语法
case \$变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于 java 中的 break。
(3)最后的“*)”表示默认模式,相当于 java 中的 default。
2)案例实操
输入一个数字,如果是 1,则输出 banzhang,如果是 2,则输出 cls,如果是其它,输出renyao。
6.3 for 循环
1)基本语法 1
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
***for (( 初始值;循环控制条件;变量变化 ))内的内容可以用变量和序列{}来表示。***
2)案例实操
从 1 加到 100
3)基本语法 2
for 变量 in 值 1 值 2 值 3…
do
程序
done
4)案例实操
(1)比较
∗
和
*和
∗和@区别
∗
和
*和
∗和@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1
2
…
2 …
2…n
的形式输出所有参数。
当它们被双引号“”包含时,$*会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;$@会将各个参数分开,以“$1” “
2
”
…
“
2”…“
2”…“n”的形式输出所有参数。
6.4 while 循环
1)基本语法
while [ 条件判断式 ]
do
程序
done
第 7 章 read 读取控制台输入
1)基本语法
read (选项) (参数)
①选项:
- -p:指定读取值时的提示符;
- -t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待
②参数
- 变量:指定读取值的变量名
2)案例实操
提示 7 秒内,读取控制台输入的名称
[atguigu@hadoop101 shells]$ touch read.sh
[atguigu@hadoop101 shells]$ vim read.sh
#!/bin/bash
read -t 7 -p "Enter your name in 7 seconds :" NN
echo $NN
[atguigu@hadoop101 shells]$ ./read.sh
Enter your name in 7 seconds : atguigu
atguigu