shell脚本

第一个shell脚本

#!/bin/bash
echo "hell world"

shell脚本输出变量

#!/bin/bash
var="hello"
echo $var
# ‘#’在shell中标识注释 
#或者使用{}限定变量的范围
echo ${var}
#echo $var 和 echo ${var}的区别 比如
#aa="hello" a=1  
echo $aa   #输出 hello
echo ${a}a #输出 1a

shell 中的变量

#!/bin/bash
var="ediso" #不加任何修饰 即为全局变量 生命周期为脚本结束
test()
{
var1="chen"
local var2="nihao" #使用local 修饰的即为局部变量,生命周期为函数结束 只能在函数中使用
}
test  #函数调用
local var3="efrgt" # 运行报错  local只能在函数中使用
echo $var  # 输出ediso
echo $var1 # 输出chen
echo $var2 # 输出 为空

shell 计算两个数的和(考查把字符转整数)

#!/bin/bash
echo '请输入两个整数以空格隔开:'
num1=$1  # 获取第一个参数的值($0为脚本名)
num2=$2  # 获取第二个参数的值
sum=$[num1]+$[num2] # $[num]将输入值转为整数
echo -n $[sum]  # -n  表示不换行

计算1-100的和(考查for循环最基本使用)

#!/bin/bash
echo 'useage:求100以内数的和'
sum=0
for i in {1..100}  # 或者写成  for i  in $(seq 1 100)
do
   sum=$[$[sum]+$[i]]
   #echo $sum
done
echo -n '1-100内数的和是:' $sum

使用crontab 制作定时任务(以ubuntu演示)暂时不演示安装过程

此时你的ubuntu 应该是已经支持crontab
开启服务:service cron start
关闭服务:service cron stop

新增任务:crontab -e 如图:
在这里插入图片描述
如上图24行 是每分钟 往crontabLog.txt文件中追加 “one minuter pro”
查看任务:crontab -l

shell 终端操作

1.显示当前时间:date "+%Y-%m-%d %H:%M:%S" // 输出2010-01-01 10:49:42
2.查看某个文件的创建时间:date -r /data/buildShell.sh  "+%Y-%m-%d %H:%M:%S"
3.使用时间搓计算随机数并计算md5:date "+%s%d" | md5sum

shell 定时任务 删除指定时间之前的文件

需求:如果/data/run.log创建的时间超过了5小时。那么请删除它
在crontab 里面配置一分钟任务 */1 * * * *  /data/removeFile.sh
removeFile.sh脚本文件的内容如下:
#! /bin/bash
if [ -f "/data/run.log" ] #里面内容距2边中括号要有空格
then
  #获取run.log文件的创建时间 2010-01-01 17:24:58
  file_time=`date -r /data/run.log "+%Y-%m-%d %H:%M:%S"`
  #获取当前时间
  cur_time=`date +"+%Y-%m-%d %H:%M:%S"`
  #将时间转化为秒数 1262337898
  file_data=`date +%s -d "$file_time"`
  cur_data=`date +%s -d "$cur_time"`
  #计算时间差
  diff_time=$(($((cur_data))-$((file_data))))
  #取时间差的绝对值
  diff_time=${diff_time/-/}
  #将秒数转为小时
  var=$(($diff_time/3600))
  if [$var -ge 5 ] # 大于等于5
  then
   rm /data/run.log
  else
   echo '时间未足5小时'
  fi
else
   echo '文件不存在'
fi

awk(超强文本处理器使用)

文本文件 test.txt 内容如下
1  aaa
2  bbb
1  ffgh
3  frfr y6y6
4  45   efrdrfr
awk '{print$0}' test.txt 打印全部内容
1  aaa
2  bbb
1  ffgh
3  frfr y6y6
4  45   e3frdrfr
awk '{print$1}' test.txt 打印第一列的内容
1
2
1
3
4
awk '/3/{print$0}' test.txt 打印包含3的所有内容
3  frfr y6y6
4  45   e3frdrfr
awk '{if($1%2==0) print$0}' test.txt 打印第一列能被2整除的所有内容
2  bbb
4  45   e3frdrfr
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值