4.几个常用的shell脚本例子
    4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释
    4.1.kill_processes.sh(一个杀死进程的脚本)

  1. #!/bin/bash
  2. current_PID=$$
  3. ps -aux | grep "/usr/sbin/httpd" | grep -v "grep" | awk '{print $2}' > /tmp/${current_PID}.txt
  4. for pid in `cat /tmp/${current_PID}.txt`
  5. do
  6. {
  7. echo "kill -9 $pid"
  8. kill -9 $pid
  9. }
  10. 9done
  11. rm -f /tmp/${current_PID}.txt

4.2.cpdir.sh

  1. #!/bin/bash
  2. #此脚本用于将源目录下的子目录全部复制到目的目录中,不复制源目录中的文件,确保目的目录中的子目录是空目录
  3.  
  4. #脚本用法函数
  5. usage()
  6. {
  7. echo "cpdir.sh 源目录 目的目录"
  8. }
  9. #判断是否为两个参数,否则提示脚本用法
  10. if[ $# -ne 2 ]
  11. then
  12. {
  13. usage
  14. exit
  15. }
  16. fi
  17. srcdir=$1
  18. desdir=$2
  19. #判断源目录${srcdir}是否为目录,否则提示错误信息和用法
  20. if [ ! -d $srcdir ]
  21. then
  22. {
  23. usage
  24. echo "错误:源目录${srcdir}不是目录"
  25. exit
  26. }
  27. fi
  28. #判断目的目录${srcdir}是否为目录,否则提示错误信息和用法
  29. if [ ! -d $desdir ]
  30. then
  31. {
  32. usage
  33. echo "错误:目的目录${desdir}不是目录"
  34. exit
  35. }
  36. fi
  37. processid=$$;
  38. #查找源目录下所有的子目录,输出并保存到/tmp/srcdir_进程号.txt文件中
  39. echo "源目录下${srcdir}所有的子目录"
  40. echo "------------------------------"
  41. find $srcdir/* -type d | /usr/bin/tee /tmp/srcdir_tmp_${processid}.txt
  42. sed "s/^${srcdir}/${desdir}/g" /tmp/srcdir_tmp_${processid}.txt > /tmp/srcdir_${processid}.txt
  43. #在目的目录下建立空子目录
  44. rm -rf ${desdir}/*
  45. for subdir in `cat /tmp/srcdir_${processid}.txt`
  46. do
  47. {
  48. mkdir ${subdir}
  49. }
  50. done
  51. echo ""
  52. echo "目标目录下${desdir}所有的子目录"
  53. find $desdir/* -type d | /usr/bin/tee /tmp/desdir_${processid}.txt
  54. #比较在目的目录下建立空子目录后的差异
  55. echo ""
  56. echo "--------------------------"
  57. diff /tmp/desdir_${processid}.txt /tmp/srcdir_${processid}.txt
  58. rm -f /tmp/srcdir_${processid}.txt
  59. rm -f /tmp/desdir_${processid}.txt
  60. rm -f /tmp/srcdir_tmp_${processid}.txt

4.3.我的疑惑
        <<mayday
            各种信息
        mayday
        上面的shell代码是什么意思?

Linux Shell 高级编程技巧4----几个常用的shell脚本例子的更多相关文章

  1. Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程

    Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...

  2. Linux Shell 高级编程技巧3----运行级别脚本介绍

    3.运行级别脚本介绍    3.1.运行级别        运行级别介绍:            0    关机            1    单用户模式            2    多用户模式 ...

  3. Linux Shell 高级编程技巧2----shell工具

    2.shell工具    2.1.日志文件        简介            创建日志文件是很重要的,记录了重要的信息.一旦出现错误,这些信息对于我们排错是非常有用的:监控的信息也可以记录到日 ...

  4. Linux Shell 高级编程技巧1----深入讨论(awk、<<)

    1.深入讨论(awk.<<)    1.1.深入讨论awk        记录和域,模式和动作,正则表达式和元字符            基础教程中已经介绍        条件和逻辑操作符 ...

  5. 跟着老男孩一步步学习Shell高级编程实战

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1264627 本sh ...

  6. (转)跟着老男孩一步步学习Shell高级编程实战

    原文:http://oldboy.blog.51cto.com/2561410/1264627/  跟着老男孩一步步学习Shell高级编程实战 原创作品,允许转载,转载时请务必以超链接形式标明文章 原 ...

  7. Linux环境高级编程--介绍

    从今天開始.将开启Linux环境高级编程(Advanced Programming Of Linux Enviroment)的学习笔记或者说总结,我将持续和大家分享自己的学习成果.本系列博客依托于li ...

  8. Linux C高级编程——文件操作之系统调用

    Linux C高级编程文件操作之系统调用 宗旨:技术的学习是有限的,分享的精神是无限的.           库函数是一些完毕特定功能的函数.一般由某个标准组织制作公布,并形成一定的标准.使用库函数编 ...

  9. [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader

    高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...

随机推荐

  1. eclipse中整合springMvc,velocity和sitemesh

    1.项目所需要jar包 (有些可能多余) 2.创建UserController   目录如下: package qust.thb.usermanage.controller; import org.s ...

  2. php DI实现实例:

    <?php //DI 主要运用IoC用于解决 依赖文件共享(无需每一个依赖都手动注册) //管理应用程序中的『全局』对象(包括实例化.处理依赖关系). //可以延时加载对象(仅用到时才创建对象) ...

  3. hdu1054 树形dp&&二分图

    B - Strategic Game Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  4. Java获取新浪微博cookies

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.F ...

  5. 7.6--找过点最多的直线(CC150)

    直接两个点确定一条直线.然后两两组合,再写一个看过多少个点的函数.一直更新max就行. import java.util.Arrays; public class Solution { public ...

  6. java.lang.ClassNotFoundException: net.sf.json.JSONArray,java.lang.NoClassDefFoundError: net/sf/json/JSONArray jetty跑项目遇到的问题

    2016-05-18 15:44:25 ERROR Dispatcher.error[user:|url:]:L38 - Dispatcher initialization failed Unable ...

  7. java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition

    解决办法: 原先:<bean id="sessionFactory"class="org.springframework.orm.hibernate3.annota ...

  8. php 通过API接口连接12306余票查询

    <?php header("content-type:text/html;charset='utf-8'"); //设置编码 echo "<meta cont ...

  9. Jenkins安装部署

    官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions#Install ...

  10. andrond mk通配符遍历文件夹

    define all-cpp-files-under$(patsubst ./%,%, \ $(shell cd $(LOCAL_PATH) ; \ find $(1) -name "*.c ...