快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → Linux下Shell编程杂记

Linux下Shell编程杂记

时间:2022-09-15 22:06:08人气:作者:快盘下载我要评论
本篇文章主要讲一些常用的Shell编程知识,包括:date日期格式化、清空文件内容、Shell字符串截取、Shell中使用运算符、RANDOM 随机数、强制对一个变量进行算术操作(加减)、特殊字符进行转义等等。

date日期格式化

1、各种date日期格式转换

格式:2020-02-24 11:50
代码:$(date +%Y-%m-%d)' '$(date +%H:%M)

格式:20200224115052
代码:$(date +%Y%m%d%H%M%S

实例:显示当前时间

命令:

date

date '+%c'

date '+%D'

date '+%x'

date '+%T'

date '+%X'

输出:

Linux下Shell编程杂记

2、显示过去和未来的时间

date 命令的另一个扩展是 -d 选项,可以快速地查明一个特定的日期。相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。

具体说明如下:

date -d '2 weeks' 2周后的日期

date -d 'next monday' (下周一的日期)

date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

date +%Y%m%d --date="+1 day"  //显示后一天的日期
date +%Y%m%d --date="-1 day" //显示前一天的日期

使用 ago 指令,您可以得到过去的日期:

date -d '30 days ago' (30天前的日期)

使用负数以得到相反的日期:

date -d 'dec 14 -2 weeks' (相对:dec 14这个日期的两周前的日期)

date -d '-100 days' (100天以前的日期)

date -d '50 days'(50天后的日期)

加减指定的天数/小时/分钟

在指定的日期上减去指定的天:
echo $(date -d "2020-02-24 11:50:18 3 days" +"%Y%m%d%H")
三天后:2020022711

在指定的日期上加上指定的小时:
echo $(date -d "2020-02-24 11:50:18 1 hour" +"%Y%m%d%H")
一小时后:2020022412

在指定的日期上减去指定的小时:
echo $(date -d "2020-02-24 11:50:18 -6 hour" +"%Y%m%d%H")
6小时前

在指定的日期上加上指定的分钟:
echo $(date -d "2020-02-24 11:50:18 10 minute" +"%Y%m%d%H")
十分钟后

参考文章:Linux命令之Date——时间

linux清空文件内容的三种方法

1.使用vi/vim命令打开文件后,输入"%d"清空 后保存即可。但当文件内容较大时,处理较慢,命令如下:

vim file_name
:%d
:wq

2.使用cat命令情况【推荐使用】,命令如下:

cat /dev/null > file_name

3.使用echo命令清空,此时会在文件中写入一个空行“ ",【注意,使用echo时候,>是清空文件后写入,>>是追加写入】命令如下:

echo "">file_name

Shell字符串截取

字符串截取函数:

格式

说明

${string: start :length}

从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。

${string: start}

从 string 字符串的左边第 start 个字符开始截取,直到最后。

${string: 0-start :length}

从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。

${string: 0-start}

从 string 字符串的右边第 start 个字符开始截取,直到最后。

${string#*chars}

从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。

${string##*chars}

从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。

${string%*chars}

从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

${string%%*chars}

从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

实例:

从字符串左边截取:第2个字符到第9个字符

url="c.biancheng.net"echo ${url: 2: 9}

结果为biancheng。

找到第一个*字符,截取右边所有字符

url="http://c.biancheng.net/index.html"echo ${url#*:}

结果为//c.biancheng.net/index.html。

推荐文章:

Shell字符串截取:http://c.biancheng.net/view/1120.html

Shell中使用运算符

关系运算符列表:

-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。 -ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。 -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。 -ge 检测左边的数是否大等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。 -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

布尔运算符列表:

! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。 -o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。 -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

字符串运算符列表:

= 检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。 != 检测两个字符串是否相等,不相等返回 true。[ $a != $b ] 返回 true。 -z 检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。 -n 检测字符串长度是否为0,不为0返回 true。[ -z $a ] 返回 true。 str 检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。

推荐文章:

shell脚本的简单使用:三—— 之运算符使用:

https://blog.csdn.net/iteye_8560/article/details/82681032

RANDOM 随机数

在BASH环境下,这个RANDOM变量的内容是得到0~32767之间的随机数。

0~10之间的数值:

echo $(($RANDOM%10))

也可以利用 declare 宣告数值类型:

declare -i number=$RANDOM*100/32767;
echo $number

强制对一个变量进行算术操作(加减)

`expr $variable - 1`

variable=3
variable=`expr $variable - 1`
echo $pos

特殊字符进行转义

在Shell中利用反斜线给特殊符号进行转义【单引号和双引号会影响的使用】,下面是例子:

[root@autoCheckIn]# echo *
autoCheckIn.log date.log lastDate.log test.sh
[root@autoCheckIn]# echo *
*
[root@autoCheckIn]# echo $
$
[root@autoCheckIn]# echo $lastDate
2020-02-24 22:17
[root@autoCheckIn]# echo $lastDate
$lastDate
[root@autoCheckIn]# 

参考文章

1、shell脚本的简单使用:三—— 之运算符使用

https://blog.csdn.net/iteye_8560/article/details/82681032

2、linux shell 在指定日期上增加或者减去一小时或者一分钟

https://blog.csdn.net/u010670689/article/details/45077177?utm_source=blogxgwz0

3、linux清空文件内容的三种方法

https://www.cnblogs.com/zqifa/p/linux-vim-4.html

祝君工作顺利,加油。

相关文章

  • Xshell怎么连接交换机?-Xshell连接交换机教程

    Xshell怎么连接交换机?-Xshell连接交换机教程,小伙伴们知道Xshell怎么连接交换机吗?今天小编就来讲解Xshell连接交换机教程,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。...
  • Xshell怎么进行分页?-Xshell进行分页教程

    Xshell怎么进行分页?-Xshell进行分页教程,小伙伴们知道Xshell怎么进行分页吗?今天小编就来讲解Xshell进行分页教程,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。