shell练习:svndiff & change_ip

在shell中写代码,有些命令比较常用,所以整合到一起来实现一些小功能,笔记一下:

第一个脚本是用来对比SVN中的不同版本的不同,借助了svn自身的命令行工具和vimdiff工具:

shell练习:svndiff & change_ipshell练习:svndiff & change_ip代码
#!/bin/sh#filename=date +%Y%m%d%H%M%Sfilename=${1##*/}if [ "$#"=2 ];then        svn up ${1}        cp ${1}"/tmp/$filename"'.now'        svn up -r${2}${1}        cp ${1}"/tmp/$filename"'.'"$2"        cp "/tmp/$filename"'.now' ${1}        vimdiff /tmp/${filename}.${2}/tmp/${filename}.now        exit 0elif [ "$#"=3 ];then        cp ${1}"/tmp/$filename"'.now'        svn up -r${2}${1}        cp ${1}"/tmp/$filename"'.'"$2"        svn up -r${3}${1}        cp ${1}"/tmp/$filename"'.'"$3"        cp "/tmp/$1"'.now' ${1}        vimdiff /tmp/${filename}.${2}/tmp/${filename}.${3}        exit 0fi         echo "==========================================="        echo "Format: svndiff file version1 [version2]"        echo "eg: svndiff zyf.php 1923 1099"        echo "eg: svndiff zyf.php 1923"        echo "==========================================="

恩,这个脚本支持两种命令格式啦:
svndiff zyf.php 1923 1099 #这是把SVN中的r1923和r1099对比
svndiff zyf.php 1923 #这是把SVN库中的r1923与最新版本对比

第二个脚本是用来更改IP的域名指向的,用来内网做一些测试工作:

shell练习:svndiff & change_ipshell练习:svndiff & change_ip代码
#!/bin/shif [ "$1"="163" ];then        echo "163 Go!"elif [ "$1"="162" ];then        echo "162 Go!"elif [ "$1"="0" ];then        echo "ok"else        printf "Usage: {163|162|0|test1}\n"ficat "$0"| sed -n '/^#no/p' | sed 's/^#no //' > /etc/hostscat "$0"| sed -n '/^#'"$1"'/p' | sed 's/^#'"$1"' //' >>/etc/hosts#init#no 127.0.0.1   localhost#no 127.0.1.1   zyf-laptop#no #no # The following lines are desirable for IPv6 capable hosts#no ::1     localhost ip6-localhost ip6-loopback#no fe00::0 ip6-localnet#no ff00::0 ip6-mcastprefix#no ff02::1 ip6-allnodes#no ff02::2 ip6-allrouters#no ff02::3 ip6-allhosts## quick switch begin## tip 163测试环境#163 192.168.1.163     www.zhangabc.com## quick switch end

小摘抄:

SHELL参数介绍

如同ls 命令可以接受目录等作为它的参数一样,在shell编程时同样可以使用参数。Shell有位置参数和内部参数。
1、 位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段 并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类 推。
2、 内部参数
上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。
$# —-传递给程序的总的参数数目
$?—-上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$ —-传递给程序的所有参数组成的字符串。
$n* —-表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 …

$0 —-当前程序的名称
$@—-以”参数1″ “参数2” … 形式保存所有参数
$$ —-本程序的(进程ID号)PID
$! —-上一个命令的PID

主要是用来练习shell脚本的基础语法,呵呵。写的一定非常的不规范,请有经验的前辈指正,先谢谢啦。

Original: https://www.cnblogs.com/amboyna/archive/2009/11/30/1613944.html
Author: 玉米疯收
Title: shell练习:svndiff & change_ip

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529697/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • docker Redis 安裝路徑

    /usr/local/etc posted @2022-01-14 17:35 刘大飞 阅读(20 ) 评论() 编辑 Original: https://www.cnblogs….

    Linux 2023年5月28日
    0114
  • 基础算法题

    Problem 3或5的倍数 2: 偶斐波那契数 4:最大回文乘积 5 窗口移动 11:方向数组 13大整数加法 、 14最长考拉兹序列 15:网格路径 25:1000位斐波那契数…

    Linux 2023年6月7日
    0118
  • 【论文笔记】(2017,BIM)Adversarial Machine Learning at Scale

    本文主要是给出了两类多个对抗攻击方法:one-step 攻击和 multi-step 攻击,并在大型模型和大型数据集上对这些方法进行对比实验,实验结果发现使用 one-step 样…

    Linux 2023年6月7日
    087
  • ipmitool for windows下载网址

    ipmitool for windows版本下载网址 http://ipmiutil.sourceforge.net/ Original: https://www.cnblogs….

    Linux 2023年6月7日
    0113
  • 罗德岛

    自从转行以后就建博了,一直没有动手写内容,今天开始写。 主要记录技术上的积累和项目上的工作感悟。 这里就是罗德岛,就在这里跳。 Original: https://www.cnbl…

    Linux 2023年6月6日
    090
  • MySQL架构和存储引擎、系统默认数据库介绍

    采用C/S架构,即客户端/服务器。客户端和服务器区分开,通过客户端发送请求来和服务器交互。 存储引擎:MySQL管理数据文件的一种技术。 myisam innodb myisam特…

    Linux 2023年6月7日
    0109
  • 利用prometheus 客户端采集磁盘容量脚本

    点击查看代码 #!/bin/bash #date: 20220621 #author:bin >/tmp/node_dmz.txt >/tmp/node_err.txt…

    Linux 2023年6月14日
    096
  • Linux下使用压力测试工具stress

    首先解压安装包到/usr/local/src/下 mv stress-1.0.4.tar.gz /usr/local/src​tar -zxf stress-1.0.4.tar.g…

    Linux 2023年6月13日
    089
  • redis用法分析

    redis也是一个内存非关系型数据库,它拥有memcache在数据存储上的全部优点,而且在memcache的基础上增加了数据持久性功能,redis用rdb和aof两种方式实现数据持…

    Linux 2023年5月28日
    085
  • 蓝牙BLE传输性能及延迟分析

    BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数、每一帧数据的长度。具体参见如下链接: ht…

    Linux 2023年6月7日
    0157
  • 【论文笔记】(FGSM)Explaining and Harnessing Adversarial Examples

    本文发表于 ICLR 2015,提出了经典的攻击方法 – FGSM(Fast Gradient Sign Method),这篇博客的第1-5节为重点部分,包括原文第5节…

    Linux 2023年6月7日
    0111
  • ICMP 协议仿真及ping命令用途

    1、实验目的 加深对 IPv4 协议首部各定义域的理解,掌握路由表的结构和基本配置命令,熟悉 ICMP 的调试操作。 2、实验原理 IPv4 协议定义,网络层协议的相关 RFC 定…

    Linux 2023年6月8日
    0122
  • 自己写的文件夹图标修改脚本

    自己写了一个文件图标修改的Python脚本,只要把文件夹拖动到这个脚本上,就可以用文件夹中的图片和视频作为文件夹的封面。把图片或视频拖到脚本上,就可以把这个图片或视频用作其所在文件…

    Linux 2023年6月6日
    0165
  • Linux常用文件权限命令详解

    pwd pwd命令用于获取当前工作目录的绝对路径。 使用示例: pwd 效果如下图: cd cd命令用于切换工作目录。 使用示例: cd 万&#x73…

    Linux 2023年5月27日
    0109
  • 面试连环炮系列(二十六):什么情况下JVM频繁发生full GC

    什么情况下JVM频繁发生full GC; 在实际项目什么代码导致full GC;线上怎么排查是哪个程序导致的ful GC 1. 什么情况下JVM频繁发生full GC?full g…

    Linux 2023年6月6日
    0124
  • 【证券从业】金融基础知识-第三章 证券市场主体02

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为三篇文章记录消化 posted @2022-06-03 02:14 陈景中 阅读…

    Linux 2023年6月13日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球