在shell中写代码,有些命令比较常用,所以整合到一起来实现一些小功能,笔记一下:
第一个脚本是用来对比SVN中的不同版本的不同,借助了svn自身的命令行工具和vimdiff工具:
代码#!/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的域名指向的,用来内网做一些测试工作:
代码#!/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/
转载文章受原作者版权保护。转载请注明原作者出处!