1.if语句 判断条件: 1.使用test进行判断,用于检测结果是否正确 2.使用[],符号和符号表达式都可以使用,如果使用的符号需要加上转义符 注意:符号和[]两边需要加空格 3.使用[[]],符号和表达式都可以使用 注意:符号和[]两边需要加上空格 4.使用(()),只能使用符号 注意:符号和()两边不需要加空格 格式1:if 判断条件 then 执行语句 fi 格式2:if 判断条件 then 执行语句 else 执行语句 fi 格式3:if 判断条件 then 执行语句 elif 执行语句 fi 如果有两个判断条件 格式:((判断条件 & 判断条件)) ((((判断条件)) & ((判断条件)))) 2.键盘录入:read 格式1:read 变量 格式2:read 变量1 变量2 注意:使用格式2时,键盘录入的需要一空格进行切分 echo输出默认换行,不换行写法 echo -n 输出结果 3.for循环: 格式1:for ((初始化变量;判断条件;控制语句)) do 执行语句 done 例如:for ((i=1;i<=100;i++)) do echo ${i} done 格式2:for 变量 in 结果集 do 执行语句 done 例如:for i in {1..100} do echo ${i} done {开始.. 结束}:表示开始位置到结束位置所有的数字 `seq 开始 结束`:表示开始位置到结束位置的所有数字 可以识别变量 例题:for循环输出1-100,求奇数和 偶数和 osum=0; jsum=0; for i in {1..100} do if ((${i}%2==0)) then #osum += ${i} 结果进行了拼接 #osum=`expr ${i} +${osum}` #osum=$[${i}+${osum}] let osum += i else #jsum += ${i} let jsum +=i fi done echo "偶数和为${osum}" echo "奇数和为${jsum}" 累加操作: osum = `expr ${i} + ${osum}` osum = $[${i}+${osum}] let osum += i 使用let之后,在引用变量进行计算时,不需要在使用$,+=是进行计算不再是拼接 例题:打印5*5的三角形 for i in {1..5} do for j in `seq 1 ${i}` do echo -n "*" done echo "" done 3.函数: 方法定义:函数名称(){ 方法体 } 方法调用:直接使用方法名称 参数传递:通过$数字,来进行接收,$0永远是脚本的名称,方法调用时传递参数 返回值:return 接收返回值:$? 注意:return只能return数字 $?接收当前执行的状态,只接受一次 4.日期 获取当前日期时间 date + "%Y-%m-%d %H:%M:%S" 加减日期时间 date +%Y%m%d //显示当天的日期 date +%Y%m%d --date="+1 day" //显示后一天的日期 date +%y%m%d --date="-1 day" //显示前一天的日期 date +%Y%m%d --date="+1 month" //显示下一月的日期 date +%y%m%d --date="-1 month" //显示上一月的日期 date +%Y%m%d --date="+1 year" //显示下一年的日期 date +%y%m%d --date="-1 year" //显示前一年的日期 5.重定向:每输入一个命令都会打开三个文件 标准输入文件(stdin):stdin的文件描述符为0,默认从stdin读取数据 标准输出文件(stdout):stdout的文件描述符为1,默认向stdout输出数据 标准错误文件(strerr):stderr的文件描述符为2,向stderr流中写入错误信息 重定向是,默认不会把文件描述符为2,写入到文件中,想要写入需要: ll data.txt data1.txt 2> test.txt data.txt存在 data1.txt不存在的 ls:无法访问data1.txt:没有那个文件或目录 --------------2 -rw-r--r--. 1 root root 6 9月 17 14:09 data.txt--------1 如果想要把1和2都重定向到文件中 需要:ll data.txt data1.txt > test.txt 2>&1 6.定时器: 格式:*(分钟)*(小时)*(几号)*(月)*(星期) command 创建定时任务:crontab -e 打开一个文件 在文件按照定时器的格式书写定时任务 例如:每分钟执行定时任务 * * * * * sh 脚本路径 查看定时任务是否执行了,看日志 tail -f /var/log/cron
linux学习day05----shell编程2
最新推荐文章于 2024-08-06 18:54:25 发布