[ Content | Sidebar ]

Posts tagged shell

恶作剧脚本..

昨晚公司开颁奖晚会(日子选的很别扭),偶们改的状态会实时显示在状态墙上.彩排完毕超市购物间隙跟强哥想到一个恶搞的方法–刷屏.具体来说就是用偶们几个人滴号不停的改状态刷状态墙.于是立刻找到一个网吧实施罪恶的行为.

我写脚本,强哥写用来刷屏的状态,额,用shell改状态就两句话,不过放在公司的机器上,没办法,还得现查curl,最终在入场之前还是把脚本写完了…

#!/bin/sh
 
#所有的状态放到status.txt中,然后用这个函数循环取
get_status()
{
    #取第一行状态
    head -1 status.txt
    #第一行移动到最后一行
    sed -i -e '1{h;d};$G' status.txt
}
 
#该状态的函数,两个参数:用户名,密码
send_status()
{
    user=$1
    pass=$2
    word="`get_status`"
    word="`perl -MURI::Escape -e "print uri_escape('${word}');"`"
    curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -D /tmp/cookies -d "email=${user}&password=${pass}" http://login.renren.com/login.do
    curl -e "http://renren.com/Home.do" -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -b /tmp/cookies -d "c=${word}&raw=${word}" http://status.renren.com/doing/update.do 
}
 
#main
send_all()
{
    while [ "s"="s" ];do
        #on_off.txt是个开关文件,如果存在时才会发状态
        if [ -e "/tmp/on_off.txt" ];then
            #用户名和密码都存在user.txt里
            #跟状态一样也是轮着来
            u_p="`head -1 user.txt`"
            sed -i -e '1{h;d};$G' user.txt
            user="`echo "${u_p}" | cut -d: -f 1`"
            password="`echo "${u_p}" | cut -d: -f 2`"
            #改状态了
            send_status $user $password
        fi
        #五秒钟发一次
        sleep 5
    done
}
 
send_all
Copy Code 

脚本写完了,但是怎么启动呢,我的手机上有个putty,但是登server太慢了,于是又写了一个开关的php

<?php
if(file_exists('/tmp/on_off.txt'))
{
    unlink('/tmp/on_off.txt');
}
else
{   
    $fp = fopen('/tmp/on_off.txt', 'w');
    fwrite($fp,'ooxx');
    fclose($fp);
}
?>
Copy Code 

这样就比较方便了,shell在server上运行,只要用手机浏览器访问这个开关的php就可以了~

后来使用中遇到点问题,手机浏览器的缓存实在太强了!!!!!!

谷歌音乐shell版

2009.10.15 update
其实需要两个包支持

sudo apt-get install uni2ascii
sudo apt-get install gawk
Copy Code 

———————————
一个可以快速听歌的东东,虽说是练手之作,但是当特别想听某首歌硬盘里又没的时候还是挺方便的~

这个脚本可以将谷歌音乐的的搜索结果显示到终端(支持关键词高亮和分页),选择某一歌曲的序号之后,脚本会获取该曲目的播放地址,并调用播放器播放,咔咔,就是这么简单

脚本运行需要uni2ascii这个包的支持,没有可以apt-get一下,播放器调用ubuntu自带的rhythmbox,可以根据情况修改

#使用方法
google_music.sh "周杰伦 花海"
Copy Code 

下载点这里

截图:

2009-8-23 13-43-01

shell:批量网页截图

强哥的籲求:把一個目錄內所有的模板截圖并生成一個索引html

咔咔,原来小企鹅输繁体这么溜。。

极其ft的是,晚上问传业这事,丫直接给我看了某人的相册,四十多张人家早就手工截完了。。

脚本附上,暂不支持滚动截图,如果页面比较长就只能看半截
原理十分的简单,全屏一个浏览器,然后截屏

webshot.sh

使用方法:

#直接跟目录名,有些参数需要修改webshot.sh
webshot.sh ~/webdemos
Copy Code 

svn diff 增强版

以前xp上用小乌龟,diff的时候只需要ctrl选一下两个版本,然后就哦了,先在命令行下面是现svn log查log,记下两个版本,然后两个版本都cat下来,然后vimdiff两个文件。由于记性不是很好,每次cat完一个,就忘了下一个版本号。。,所以俺整了一个增强版,只需要记住版本号的最后一位或几位数。

下载

#比较修改版本与最新版本的差异
svndiff.sh base.js
 
#比较修改版本与10782版本的差异
svndiff.sh base.js 10782
 
#比较修改版本与最新的以数字56结尾的版本的差异
svndiff.sh --lazy base.js 56
 
#比较10732与10783两个版本的差异
svndiff.sh base.js 10732 10783
 
#比较两个最新的以12和03结尾的版本的差异
svndiff.sh --lazy base.js 12 03
Copy Code 

shell:mpc播放第一首匹配关键词的曲目

2010.1.18 更正

mpc play `mpc playlist | sed -n '/周杰伦/{=;q}'`
Copy Code 

—————————
虽然习惯随机…

mpc play `mpc listall | sed -n '/周杰伦/{=;q}'`
Copy Code