惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 玉米疯收

[C语言]排序问题--我的解答 转载:算法方面的一些书籍和网上资源 [C语言]排序问题 - 玉米疯收 - 博客园 如何利用css使PNG图片透明 - 玉米疯收 - 博客园 So, you think you know JavaScript? (你认为你懂JS吗) 不用密码使用ssh管理远程linux服务器 [转]mysql性能的检查和调优方法 PHP 中巧用数组降低程序的时间复杂度 HTTP协议中的5类状态码 冬日随笔 牛年求牛。 统计字符串中单词个数的算法优化 MYSQL的慢查询分析 csft安装过程中出错的问题及解决办法(目前仍然无法成功进行对中文的处理) 强烈鄙视“做成像……一样就可以了”这种需求被不负责任的提出 (转)关于程序员考研的研究 搭建PHP的缓存服务Memcache Gentoo用上虚拟机中的战斗机KVM 国外的程序员也这样!
shell练习:svndiff & change_ip
玉米疯收 · 2009-11-30 · via 博客园 - 玉米疯收

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

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

代码


#!/bin/sh
#
filename=date +%Y%m%d%H%M%S
filename=${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
0
elif [
"$#" = 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
0
fi
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/sh
if [ "$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"
fi

cat

"$0" | sed -n '/^#no/p' | sed 's/^#no //' > /etc/hosts
cat "$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脚本的基础语法,呵呵。写的一定非常的不规范,请有经验的前辈指正,先谢谢啦。