软件下载网站cms,做html网站搜索框教程,网站建设基础入门,wordpress网站备份恢复shell脚本
功能性语句
test
可测试对象三种#xff1a;字符串 整数 文件属性
每种测试对象都有若干测试操作符
1#xff09;字符串的测试#xff1a;
s1 s2 测试两个字符串的内容是否完全一样
s1 ! s2 测试两个字符串的内容是否有差异
-z s1 测试s1 字符串的长度是…shell脚本
功能性语句
test
可测试对象三种字符串 整数 文件属性
每种测试对象都有若干测试操作符
1字符串的测试
s1 s2 测试两个字符串的内容是否完全一样
s1 ! s2 测试两个字符串的内容是否有差异
-z s1 测试s1 字符串的长度是否为0
-n s1 测试s1 字符串的长度是否不为0
2整数的测试
a -eq b 测试a 与b 是否相等 equal
a -ne b 测试a 与b 是否不相等 not equal
a -gt b 测试a 是否大于b greater than
a -ge b 测试a 是否大于等于b greater equal
a -lt b 测试a 是否小于b litter than
a -le b 测试a 是否小于等于b litter equal
3文件属性的测试
-d name 测试name 是否为一个目录
-f name 测试name 是否为普通文件
-e name 测试文件是否存在
#!/bin/bash
#A5
#Aexpr $A 1
#((A))
# read -p input: a b c d
# SUMexpr $a \* $b $c - $d / $b
# ((Sa*bc-d/b))
# echo $SUM
# echo $S#测试两个字符串的内容是否完全一样
VARnihao
test $VAR hello
echo $?#测试两个字符串的内容是否有差异
VARnihao
test $VAR ! hello
echo $?#测试字符串的长度是否为0
test -z $VAR
echo $?#测试字符串的长度是否不为0
test -n $VAR
echo $?
#测试两个数是否相等
test 10 -eq 20
echo $?
#测试两个数是否不相等
test 10 -ne 20
echo $?
#测试a是否 b
test 10 -gt 20
echo $?
#测试a是否 b
test 10 -ge 20
echo $?
#测试a是否 b
test 10 -lt 20
echo $?
#测试a是否 b
test 10 -le 20
echo $?read -p input: F
#测试是否为一个目录
test -d $F
echo $?
#测试是否为普通文件
test -f $F
echo $?
#测试文件是否存在
test -e $F
echo $?
结构性语句
if语句
基本结构 if 条件 then 命令表1 else 命令表2 fi 多路分支语句 if 条件1 then 命令表1 elif 条件2 then 命令表2 fi 嵌套结构 if 条件1 then if 条件2 then 命令表1 fi else 命令表2 fi 补充操作符 -o 或运算 例如 [ $a -lt 20 -o $b -gt 100 ] 返回 true -a 与运算 例如 [ $a -lt 20 -a $b -gt 100 ] 返回 false 非运算 例如 [ ! false ] 返回 true 逻辑与 例如 [[ $a -lt 100 $b -gt 100 ]] 返回 false || 逻辑或 例如 [[ $a -lt 100 || $b -gt 100 ]] 返回 true | 位或 例如 echo $[2|2] 位与 例如 echo $[21] case语句
格式 case 变量 in 模式1) 命令表1 ;; 模式2) 命令表2 ;; *) 命令表n ;; esac 练习学生成绩管理系统用shell中的case实现
90-100A
80-89B
70-79C
60-69D
60不及格 for循环
格式 for 变量名 in 单词表 do 命令表 done 变量依次取单词表中的各个单词, 每取一次单词, 就执行一次循环体中的命令。循环次数由单词表中的单词数确定。命令表中的命令可以是一条, 也可以是由分号或换行符分开的多条。 for语句的几种书写格式 1for i in 1 2 3 4 do....done : 变量i从单词表中取值 2for i do...done 变量i从命令行取值可以省略in单词表 3for i in {1..10} do...done: 变量i从1-10个数中取值 4for ((i 0; i 10; i)) do...done: 书写格式类似c语言 while
格式 while 命令或表达式 do 命令表 done while语句首先测试其后的命令或表达式的值如果为真就执行一次循环体中的命令然后再测试该命令或表达式的值执行循环体直到该命令或表达式为假时退出循环。 练习
分别用for和while实现1-10求和 循环控制语句 break n :结束n层循环 continue n: 结束n层的本次循环继续下一次循环 数组
数组的赋值 (1) arr(1 2 3 4 5) (2) arr($1 $2 $3...) (3) readabc arr($a $b $c) (4) read -a arr 数组的调用
${arr[i]} #引用数组元素数组元素下标从0开始到n-1结束
arr[i]10 #对数组元素重新赋值
${arr[]} #遍历数组
${#arr[]} #数组元素的个数 练习
从终端输入3个整数输出三个数中的最小值 冒泡排序 选择排序 函数
函数的定义方式 (1) 函数名() { 命令表 } (2) function 函数名() { 命令表 } 函数的调用
函数名 参数列表 函数内 $1 $2 表示的是传递给函数的参数
作业:
用shell脚本试下以下功能
判断当前路径下是否存在目录aa如果不存在创建遍历当前路径下的文件如果是普通文件将文件复制到aa目录下并计算文件的个数。