再多学一点吧

导航

shell脚本

因为linux无法同时进行多个指令,所有通过shell作为桥梁(后缀为sh的文件)

  头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上)

  可以通过sh或者bash命名来执行           ./文件名.sh(必须在当前目录下且文件是可执行文件)

 

变量(动态数据类型,没有数据类型的限制,并且必须初始化) 

  只有一个数据类型String,整数其实也是字符串  (所有等号后面可以加引号也可以不加)

  (等号两边不能有空格)  输出20sdsfsf

  ${变量}    ${}表示值引用{}之中的内容分,对相连的内容做了一个区分(后面字符串的拼接截取等等)

 

$0...$n:表示接收外部参数(执行脚本时,传递的参数)

  $0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)
  下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标
  $*获取所有参数
  $#获取所有参数个数

           $10 是$1 和 0 的拼接

 

 

 

获取长度: ${#变量}

截取:   ${变量:开始位置:长度}          ${str::5}:从0获取5个   ${str:0}:从0获取到末尾

替换: ${变量/旧/新}     替换所有:${变量//旧/新}

       

 

删除:

  从头开始删除
    ${变量#表达式}:匹配第一个删除
    ${变量##表达式}:匹配最后一个删除
  从尾开始删除
    ${变量%表达式}:匹配第一个删除
    ${变量%%表达式}:匹配最后一个删除
    注意:从未开始删除,表达式还是从左向右去写  删除不会再原字符上进行修改,想要修改原字符串只能从新赋值

 

算数运算符

  bash不支持简单的数学运算,可以通过命令实现expr(只 支持整数)

    $[值+值]              `expr 值 + 值`           注意:符号两边需要加上空格,使用乘*需要加 \ 来转义

       

比较运算符: > < >= <=....

  $[值符号值](符号两边空格加不加无所谓)  结果true(1)和false(0)

      

 逻辑运算符: &/and |/or !/not

       

 

 

 if 

  if 判断条件
  then
    判断为true执行的代码
  elif 判断条件
  then
    判断为true执行的代码
    。。。
  else
    判断为false执行的代码
  fi
  注意:else可加可不加

判断条件的写法
[]:[]两边加空格,符号两边加空格并且符号前加转义符
可以使用字母
[[]]:[[]]两边加空格,符号两边加空格
可以使用字母
():弃用
(()):不需要加空格,但是不能使用字母
在使用变量时,不需要使用$

         right

 

for:  

java格式:
for ((初始化变量;判断条件;控制语句))    两个括号
do
执行语句
done

     使用let在计算时可以直接使用变量

python格式:
for 变量 in 结果集
do
执行语句
done

 

 

结果集:
{开始..结束}含头含尾,不能引用变量
`seq 开始 结束`含头含尾

 

 

 数组:存储多个元素,数据类型可以不同,元素元素之间以空格切分

    ${数组[下标]}     直接引用数组变量,默认获取下标为0的元素下标使用*表示获取所有

    获取长度:       ${#数组[*]}

      

 

 read:键盘录入:read 变量1 变量2 ...变量n

  键盘录入时,允许给多个变量进行赋值,值和值之间以空格切分

 

 获取当前日期时间:date空格+"%Y-%m-%d %H:%M:%S"

 格式化日期时间:date -d today +"%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" //显示下一年的日期

 

重定向:

标准输入文件(stdin):stdin的文件描述符为0,默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,向stderr流中写入错误信息。

使用>,>>默认是把正确信息写入文件
想要把错误信息和正确信息写入文件需要后面追加2>&1(把错误信息当做正确信息去处理)

 

定时器:格式:*(分钟) *(小时) *(星期) *(几号) *(月份) commend

  通过crontab -e添加定时任务(会进入编辑模式) 要给全部路径

  查看定时任务是否执行了,看日志tail -f /var/log/cron    

  * * * * * 每分钟          */1 * * * * 每分钟            0 */1 * * * 每小时

 

  

 

 

  

 

 

 

 

 

 

  

posted on 2021-09-02 21:23  糟糟张  阅读(64)  评论(0编辑  收藏  举报