• shell技巧之使用getopts

    日期:

    我们在写sh的脚本时,常常需要在运行时输入一些数据。 大家可能已经了解过如何使用基本的$*,执行的情况,大概就是$0 $1 $2 $3 那么,那些系统命令里的参数又是如何做出来的呢? 我们如何在自己的脚本中实现$0-$1的效果呢?这就是getopts的作用了。 来看一个...

  • awk中让人头疼的system()函数

    日期:

    awk中让人头疼的system()函数,有需要的朋友参考下。 发现一个特尴尬的事实。我辛辛苦苦去百度资料,想用rewrite实现针对不同域名源站故障后的自动跳转功能,但整个思路里遗漏了一个严重的问题。 按我的思路,针对请求的url进行一次curl,然后根据http_code...

  • shell 获取用户输入指定范围的单个字符的两种方法

    日期:

    需求:要求获取用户输一个字符a-zA-Z: 方法一: 复制代码 代码如下: echo `echo {a..z}``echo {A..Z}` /tmp/letterfile while read -p please input a letter: letter do ((`awk-v var=$letter BEGIN{print length(var)}` == 1)) grep -q $letter /tmp/tmpf...

  • 找出某一目录下只有一行内容的文件的shell脚本

    日期:

    需求:找出某一目录下只有一行内容的文件。 演示例子,如下所示: 复制代码 代码如下: [root@station1 ~]# mkdir findtest [root@station1 ~]# cd findtest [root@station1 findtest]# mkdir abc [root@station1 findtest]# echo nihao 123.txt [root@statio...

  • 批量修改ssh配置的expect脚本

    日期:

    描述: 公司服务器一般通过ssh进行远程管理。以前大家登录时,都是随意选内外网IP进入。现在要求必须禁了外网ssh。 第一思路,用iptables把外网ssh的包DROP掉; 第二思路,用tcpwrapper把sshd的allow写死; 第三思路,修改sshd_config,只监听内网请求。 原...

  • 计算两个日期相差多少天数的shell脚本

    日期:

    计算两个日期相差多少天数的shell脚本 复制代码 代码如下: #!/bin/bash #the days between your input and today! #2012-10-07 year(){ while read -p please input the year(must be YYYY ): YEAR do if ((YEAR=1990)) ((YEAR=9999));then echo $YEAR break...

  • 一个备份ftp服务器上的重要文件的shell脚本

    日期:

    需求:待备份的文件已列在一个文件中,要求备份的文件的路径和ftp服务器上的文件路径一致。 代码如下: #!/bin/bash cd /tmp while read FILE do DIR=`dirname $FILE` FNAME=`basename $FILE` mkdir $DIR /usr/bin/ftp -niv ! open 192.168.1.251 user tom 123...

  • awk实现head、tail与tac命令的实例解析

    日期:

    我们知道,命令head、tail、uniq和tac都是逐行操作的。 但请也记住,不管何时,只要需要进行逐行处理时,均可以用awk来解决。 接下来,我们看看如何使用awk来模拟这些命令。 来看一下如何用不同的awk命令来模拟诸如head、tail、tac等命令。 模拟head命令读取...

  • shell中进行文本切片与参数操作

    日期:

    本文介绍的内容,考查了一些简单的文本替换技术及bash中可用的参数扩展简写法。 这些简单的技巧通常能够让我们免于敲入多行代码之苦。 注意看以下的实例,强烈建议你在学习时,自己动手实践一下。 替换变量内容中的部分文本: 复制代码 代码如下: $ var=This...

  • 使用sed和awk分别处理文本的双行模式

    日期:

    使用sed和awk分别处理文本的双行模式。 文本内容: 140203196407011616 140203000108058 140203198809161616 140203000108058 要求结果如下: 140203196407011616,140203000108058 140203198809161616,140203000108058 首先,看下sed代码,sed中的N操作可以...