Linux Shell 高级编程技巧4----几个常用的shell脚本例子
4.几个常用的shell脚本例子
4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释
4.1.kill_processes.sh(一个杀死进程的脚本)
- #!/bin/bash
- current_PID=$$
- ps -aux | grep "/usr/sbin/httpd" | grep -v "grep" | awk '{print $2}' > /tmp/${current_PID}.txt
- for pid in `cat /tmp/${current_PID}.txt`
- do
- {
- echo "kill -9 $pid"
- kill -9 $pid
- }
- 9done
- rm -f /tmp/${current_PID}.txt
4.2.cpdir.sh
- #!/bin/bash
- #此脚本用于将源目录下的子目录全部复制到目的目录中,不复制源目录中的文件,确保目的目录中的子目录是空目录
- #脚本用法函数
- usage()
- {
- echo "cpdir.sh 源目录 目的目录"
- }
- #判断是否为两个参数,否则提示脚本用法
- if[ $# -ne 2 ]
- then
- {
- usage
- exit
- }
- fi
- srcdir=$1
- desdir=$2
- #判断源目录${srcdir}是否为目录,否则提示错误信息和用法
- if [ ! -d $srcdir ]
- then
- {
- usage
- echo "错误:源目录${srcdir}不是目录"
- exit
- }
- fi
- #判断目的目录${srcdir}是否为目录,否则提示错误信息和用法
- if [ ! -d $desdir ]
- then
- {
- usage
- echo "错误:目的目录${desdir}不是目录"
- exit
- }
- fi
- processid=$$;
- #查找源目录下所有的子目录,输出并保存到/tmp/srcdir_进程号.txt文件中
- echo "源目录下${srcdir}所有的子目录"
- echo "------------------------------"
- find $srcdir/* -type d | /usr/bin/tee /tmp/srcdir_tmp_${processid}.txt
- sed "s/^${srcdir}/${desdir}/g" /tmp/srcdir_tmp_${processid}.txt > /tmp/srcdir_${processid}.txt
- #在目的目录下建立空子目录
- rm -rf ${desdir}/*
- for subdir in `cat /tmp/srcdir_${processid}.txt`
- do
- {
- mkdir ${subdir}
- }
- done
- echo ""
- echo "目标目录下${desdir}所有的子目录"
- find $desdir/* -type d | /usr/bin/tee /tmp/desdir_${processid}.txt
- #比较在目的目录下建立空子目录后的差异
- echo ""
- echo "--------------------------"
- diff /tmp/desdir_${processid}.txt /tmp/srcdir_${processid}.txt
- rm -f /tmp/srcdir_${processid}.txt
- rm -f /tmp/desdir_${processid}.txt
- rm -f /tmp/srcdir_tmp_${processid}.txt
4.3.我的疑惑
<<mayday
各种信息
mayday
上面的shell代码是什么意思?
Linux Shell 高级编程技巧4----几个常用的shell脚本例子的更多相关文章
- Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程
Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...
- Linux Shell 高级编程技巧3----运行级别脚本介绍
3.运行级别脚本介绍 3.1.运行级别 运行级别介绍: 0 关机 1 单用户模式 2 多用户模式 ...
- Linux Shell 高级编程技巧2----shell工具
2.shell工具 2.1.日志文件 简介 创建日志文件是很重要的,记录了重要的信息.一旦出现错误,这些信息对于我们排错是非常有用的:监控的信息也可以记录到日 ...
- Linux Shell 高级编程技巧1----深入讨论(awk、<<)
1.深入讨论(awk.<<) 1.1.深入讨论awk 记录和域,模式和动作,正则表达式和元字符 基础教程中已经介绍 条件和逻辑操作符 ...
- 跟着老男孩一步步学习Shell高级编程实战
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1264627 本sh ...
- (转)跟着老男孩一步步学习Shell高级编程实战
原文:http://oldboy.blog.51cto.com/2561410/1264627/ 跟着老男孩一步步学习Shell高级编程实战 原创作品,允许转载,转载时请务必以超链接形式标明文章 原 ...
- Linux环境高级编程--介绍
从今天開始.将开启Linux环境高级编程(Advanced Programming Of Linux Enviroment)的学习笔记或者说总结,我将持续和大家分享自己的学习成果.本系列博客依托于li ...
- Linux C高级编程——文件操作之系统调用
Linux C高级编程文件操作之系统调用 宗旨:技术的学习是有限的,分享的精神是无限的. 库函数是一些完毕特定功能的函数.一般由某个标准组织制作公布,并形成一定的标准.使用库函数编 ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader
高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...
随机推荐
- eclipse中整合springMvc,velocity和sitemesh
1.项目所需要jar包 (有些可能多余) 2.创建UserController 目录如下: package qust.thb.usermanage.controller; import org.s ...
- php DI实现实例:
<?php //DI 主要运用IoC用于解决 依赖文件共享(无需每一个依赖都手动注册) //管理应用程序中的『全局』对象(包括实例化.处理依赖关系). //可以延时加载对象(仅用到时才创建对象) ...
- hdu1054 树形dp&&二分图
B - Strategic Game Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- Java获取新浪微博cookies
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.F ...
- 7.6--找过点最多的直线(CC150)
直接两个点确定一条直线.然后两两组合,再写一个看过多少个点的函数.一直更新max就行. import java.util.Arrays; public class Solution { public ...
- 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 ...
- java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition
解决办法: 原先:<bean id="sessionFactory"class="org.springframework.orm.hibernate3.annota ...
- php 通过API接口连接12306余票查询
<?php header("content-type:text/html;charset='utf-8'"); //设置编码 echo "<meta cont ...
- Jenkins安装部署
官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions#Install ...
- andrond mk通配符遍历文件夹
define all-cpp-files-under$(patsubst ./%,%, \ $(shell cd $(LOCAL_PATH) ; \ find $(1) -name "*.c ...