![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SHELL 编程
bingzhuan
这个作者很懒,什么都没留下…
展开
-
UNIX和LINUX系统的SHELL正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 / 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,n 匹配字符 "n"。/n 匹配一个换行符。序列 // 匹配 "/" 而转载 2008-08-01 13:26:00 · 506 阅读 · 0 评论 -
判断Shell程序输入参数的个数
if [ $# != 1 ] ; thenecho "USAGE: $0 TABNAME"echo " e.g.: $0 CDR_CALL_20040701"exit 1;fi转载 2009-07-22 14:06:00 · 3901 阅读 · 0 评论 -
日期字符串截取
DATESTR="20040903"YEAR=`echo $DATESTR|cut -b 1-4`MONTH=`echo $DATESTR|cut -b 5-6`DAY=`echo $DATESTR|cut -b 7-8`转载 2009-07-22 14:07:00 · 981 阅读 · 0 评论 -
各种编译语言调用shell命令,如何得到输出结果?
(1) Python //前面的文章中已经提到过了http://blog.chinaunix.net/u/12325/showart_217175.html两种方法,一种是且Popen.output = subprocess.Popen([ls,-l],stdout=subprocess.PIPE,shell=True).communicate()print output[0]转载 2009-07-22 14:30:00 · 1561 阅读 · 0 评论 -
本文结合大量实例阐述如何编写一个shell脚本
为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中转载 2009-07-22 12:45:00 · 1342 阅读 · 2 评论 -
unix里对于日期的处理
get_yesterday(){yy=`date +%Y`mm=`date +%m`dd=`date +%d-1|bc`if [ $dd -lt 1 ] then mm=`expr $mm - 1` [ $mm -lt 1 ] && mm=12;yy=`expr $yy - 1`fi[ $dd -le 9 ] && dd="0$dd"echo $yy$mm$dd}get_yesterday转载 2009-07-22 13:48:00 · 601 阅读 · 0 评论 -
Shell编程(2)- 使用find和xargs
1、find命令选项f i n d命令有很多选项或表达式,每一个选项前面跟随一个横杠-。 -name 按照文件名查找文件。 -perm 按照文件权限来查找文件。 -prune 使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用了- d e p t h选项,那么- p r u n e选项将被f i n d命令忽略。 -user 按照文件属主来查找文件。 -转载 2009-07-22 14:04:00 · 676 阅读 · 0 评论 -
学习 linux shell 的书例子
example about linux shell #!/bin/bashecho "Hello world!"echo "Hello $LOGNAME,Its nice talking to you"echo "U present working on a machine is `uname -n`"echo "U present working directory i转载 2009-07-22 14:35:00 · 954 阅读 · 0 评论 -
计算一个日期是星期几
get_whatdays(){ # Sample input:20020703year=`echo $1|cut -c1-4`month=`echo $1|cut -c5-6`day=`echo $1|cut -c7-8`b=`cal $month $year|wc -l `dow=`cal $month $year |awk {for(i=1;i<=NF;i++转载 2009-07-22 13:59:00 · 528 阅读 · 0 评论 -
sed - 非交互式文本编辑器
sed - 非交互式文本编辑器Lee E. McMahonBell LaboratoriesMurray Hill, New Jersey 07974翻译:寒蝉退士译者声明:译者对译文不做任何担保,译者对译文不拥有任何权利并且不负担任何责任和义务。原文:http://cm.bell-labs.com/7thEdMan/vol2/sed转载 2009-08-07 09:59:00 · 582 阅读 · 0 评论 -
awk - 模式扫描与处理语言
awk - 模式扫描与处理语言(第二版)Alfred V. AhoBrian W. KernighanPeter J. Weinberger Bell LaboratoriesMurray Hill, New Jersey 07974 翻译:寒蝉退士译者声明:译者对译文不做任何担保,译者对译文不拥有任何权利并且不负担任何责任和义务。原文:http://cm.bell-labs.转载 2009-08-07 10:01:00 · 651 阅读 · 0 评论 -
sed - 非交互式文本编辑器
sed - 非交互式文本编辑器Lee E. McMahonBell LaboratoriesMurray Hill, New Jersey 07974翻译:寒蝉退士译者声明:译者对译文不做任何担保,译者对译文不拥有任何权利并且不负担任何责任和义务。原文:http://cm.bell-labs.com/7thEdMan/vol2/sed摘要转载 2009-08-07 10:10:00 · 701 阅读 · 0 评论 -
shell基础系列:awk 用法
shell基础系列:awk 用法awk pattern {action} 变量名含义 argc 命令行变元个数 argv 命令行变元数组 filename 当前输入文件名 fnr 当前文件中的记录号 fs 输入域分隔符,默认为一个空格 rs 输入记录分隔符 nf 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk /101/ file 显转载 2009-09-10 23:29:00 · 768 阅读 · 0 评论 -
"空格的魅力"
[root@expofrt1 logs]# /usr/bin/gzip -f /u01/IBM/HTTPServer/logs/access_log.`date -d yesterday+%Y%m%d`date: invalid date `yesterday+%Y%m%dgzip: /u01/IBM/HTTPServer/logs/access_log.: No such file or di原创 2009-09-16 13:54:00 · 671 阅读 · 0 评论 -
Shell(6)- 命令执行顺序
1、使用&& :& &左边的命令(命令1)返回真(即返回0,成功被执行)后,& &右边的命令(命令2)才能够被执行;2、使用|| :如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令(命令2);3、用()和{ }将命令结合在一起 : 为了在当前s h e l l中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()括起来。如果使用{ }来代替(),那么转载 2009-07-22 14:03:00 · 484 阅读 · 0 评论 -
AWK
AWK用途:AWK 是一种用于处理文本的编程语言工具。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 命令方式:但命令的语法始终是: awk {pattern + action} {filenames} 其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时转载 2009-07-22 13:50:00 · 472 阅读 · 0 评论 -
自动发IP地址到邮箱的脚本
这个SHELL脚本目的是为了获得本机的IP地址,因为是动态PPPOE #!/bin/sh#this scripts will auto get ppp0ip-addr and send it to e-mailsleep 5IPADDR=""until [ 1 -eq 0 ]doIPaddr=""until [ -n "$IPaddr" ]do转载 2009-07-21 22:32:00 · 2726 阅读 · 0 评论 -
bash case 熟悉一下
#!/bin/bash##################################################### Program:# File operation# 1.) Open file 2.) Display file 3.) Edit file 4.) Delete file# History:# 2006/11/03 BianYuan原创 2008-08-04 12:16:00 · 576 阅读 · 0 评论 -
shell编程(二)
linux 下最重要的脚本语言算是 bash 了,我也就写点这个吧(我也只会这个:))。跟其他开发语言(如C)比,bash 是比较简单的一种语言,主要用于写一些脚本代码,一些批处理或安装程序。你可以看看在/etc/init.d/目录下,那里就有很多用来控制各个服务的脚 本文件。 先看一个“hello world!”的例子:在某个目录下新建一个文件,叫hello.sh,敲入以下代码:#!原创 2008-08-04 13:39:00 · 494 阅读 · 1 评论 -
shell_04控制流结构_笔记
shell_04控制流结构流控制是什么? !/bin/bash#创建一个目录make /home/chinaitlab/shell/txtcp *.txt /home/chinaitlab/shell/txt/rm -f *.txt上述脚本会出现问题吗?如果目录创建失败或目录创建成功文件拷贝失败,如何处理?-if语句:语句格式:if 条件1 #如果条件1为真then #那么 命令1原创 2008-08-04 13:45:00 · 564 阅读 · 0 评论 -
Bash Shell脚本学习小结
今天需要写一个Shell脚本。很简单,判断一个日志文件是否大大于2G,如果大于2G则删除。久了没有写bash,竟然一点都想不起来写了。于是复习了一下,下面对今天的学习做个小结:1.字符截断:如果是一般路径的字符截断可以用basename和dirname这两个工具:basename可以从一个文件路径中截一个文件名例如:Code highlighting produced by Actipro C转载 2008-08-04 11:15:00 · 779 阅读 · 0 评论 -
Shell里的流程控制
1. if 语句"if"表达式如果条件为真,则执行then后的部分:Toggle line numbers 1 if ....; then 2 .... 3 elif ....; then 4 .... 5 else 6 .... 7 fi大多数情况下,可以使用测试命令来对条件进行测试,比如可以比较字符串、判断原创 2008-08-04 13:30:00 · 485 阅读 · 0 评论 -
Sed简明速查手册
Sed(a stream editor)4个空间:input stream, pattern buffer, output stream和hold buffer基本操作过程是:(1).将input stream的当前行放入pattern buffer,然后input stream的指针指向下一行;(2).对pattern buffer中的行进行处理;(3).将2的处理结果放入output stre转载 2008-08-20 15:14:00 · 589 阅读 · 0 评论 -
find命令详述
find命令是linux下面一个常用的命令,说它简单可以,说它复杂也可以。它有太多的参数,要完全掌握不容易,下面我就做个翻译,并附上范例,写写常用的参数。一、基础 首先要知道的是,find相当耗io资源,如果不是必要的话,建议用locate代替。 find的命令格式如下:find pathname -optionspathname 是要搜索的路径-options 是可以增加的选项 选项包括:转载 2008-08-20 13:51:00 · 569 阅读 · 0 评论 -
理解 atime mtime ctime
所有文件都有3个时间信息,保存在文件系统中atime (Access time)是文件最后一此读的时间 或者执行文件的时间mtime (Modified time)是文件最后一次写的时间(是在写入文件时随文件内容的更改而更改的)ctime (Create time)是i-node信息最后一次写的时间.写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的你使用ex转载 2008-08-20 13:49:00 · 1609 阅读 · 1 评论 -
awk简介
awk的简单介绍,看完后;可以掌握awk基本的编程和用法的技巧 下面是关于awk的一些简单介绍:Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 awk 演示程序。 捍卫 awk 在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk转载 2008-09-08 13:30:00 · 610 阅读 · 0 评论 -
得到每月第三天的日期
Get3thDay(){ yy=`echo $1|cut -b 1-4` mm=`echo $1|cut -b 5-6` getcal=`cal $mm $yy` dd_last=`echo $getcal|awk {print $NF}` dd=`expr $dd_last + 1` if [ $dd -g转载 2009-07-22 13:50:00 · 629 阅读 · 0 评论 -
计算前一天的函数
PreviousDay(){ # 从输入的日期中减去一天 day=`expr $day - 1` # 如果day为0,那么这一天是上个月的最后一天 if [ $day -eq 0 ]; then # 找到上一个月 month=`expr $month - 1` # 如果month为0,那么这个月上一年转载 2009-07-22 13:58:00 · 984 阅读 · 0 评论 -
实现一个文件夹同步的shell脚本
实现一个文件夹同步的shell脚本算法: 1.先find /pathname -print >filea #获取两个文件夹里所有文件的全名。2.比较文件,先删去要同步的文件夹里多余的文件。接着重新获得需要同步的文件夹里所有文件的全名。3.比较文件,把源文件夹里增加的文件CP到要同步的文件夹中。 这个脚本是同步/share目录里的所有文件,需要备份到/mnt/d/shar转载 2009-07-21 22:18:00 · 5055 阅读 · 0 评论 -
Linux shell 脚本实例一
1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`dofactorial=`expr $factorial /* $a`doneecho "10! = $factorial" 2. 写一个脚本,执行后,打印一行提示“Please input转载 2009-07-21 22:26:00 · 7568 阅读 · 2 评论 -
linux shell 之 find
转贴地址: Cy158358.cublog.cn #!/bin/shcheck_patch(){ test -d $1 return}#检查路径是否存在check_patch $2if [ $? -ne 0 ]then echo "no such path $2" exit 1fiif [ "$1" = "name" ]转载 2010-01-25 22:35:00 · 1338 阅读 · 0 评论