批量压缩图片脚本

要批量转换一批相片,相机分辨率调的很高,图片大小是4M多的,如果上传到网站的话,太大了。
所以需要将它进行格式转换,将它转小一点。
用到的命令就是convert了压缩图片必备的工具。
我这里用到了两种压缩的方式:
一种是按照图片质量进行压缩(-quality)
一种是按照图片分辨率比例进行压缩(-resize)

convert的参数很多,很强大,这里只用到了它的很小的一个功能,更多功能还有待挖掘。

原文放到google document了

附脚本:

cat imageconvert.sh
#########################################################################
# Author: pengjianqing@gmail.com
# Created Time: Sun 08 Nov 2009 05:42:20 PM CST
# File Name: imageconvert.sh
# Description:Welcome to visit:www.impjq.net for more information.
#########################################################################
#!/bin/bash

Flickr API 测试脚本(完整版)

将脚本整合了一下,更多测试功能还在进一步完善中。
下载源码:http://github.com/pjq/FlickrShell/tree/master

1.新增了配置文件:flickr.conf,将你的API_KEY及密钥在这个文件中设置好,如果你是第一次运行,会自动
创建这个文件,然后打开这个文件进行相应编辑就行了。
新创建的文件形式如下:

pjq@gentoo-pjq ~/flickr $ cat flickr.conf
API_KEY=
API_SECRET=
OUTPUTDIR=./xml
TOKEN=

2.将下载的临时文件默认放在当前目录下(./xml),这个路径你可以在配置文件中进行修改
3.菜单用的是while语句,只要你输入的不是“q”就会一直循环;并且包含有子菜单,在子菜单中输入
“q”会自动跳转到上一级菜单(现在还不能确认,只是现在看到的就是这种效果,当然我这里只有2级
菜单)

4.更多API功能再慢慢完善,要查看现有哪些功能,只要启动程序进入到主菜单中就会列出来了。

*******Main Menu(Flickr.com)**************************************
Please select your action:
1.Get Info
2.Get blog list
3.Get services list
4.Post a photo to your blog

Flickr API 测试脚本

最近在研究flickr以及它的API,为了测试它的API,写了一个脚本,这样就可以很方便地测试它提供的API了。
参考这个地方:http://www.flickr.com/services/api/auth.spec.html

PS.你先要修改脚本中的:
API_KEY=****************************(这里是api_key)
API_SECRET=************************(这里是对应的公钥)
改成你自己的KEY,而且要先编译底下的那个md5.java文件,以确认它能够正常对字符串进行加密。…

Android:快速修改ramdisk.img脚本

有时候要修改Android的ramdisk.img,如果每次都将那些命令都敲一遍,那确实有点烦,那有没有快速简单的方法呢?有,就是将这些命令放在一起,创建了一个简单的脚本:
这个脚本很简单,直接将脚本放到放有ramdisk.img的目录下,运行就行了,
运行时,输入1,会将ramdisk.img解压出来,输入2会将修改后的ramdisk重新打包成ramdisk.img。

root@o-2rl2:/home/percy# cat shell/ramdisk
#!/bin/bash

echo "Modify the ramdisk.img"

echo "1.Inflate the image"
echo "2.Create the image"

read -p "Choose:" CHOOSE

#case ${CHOOSE} in
#1)inflate();;
#2)create() ;;
#esac


if [ "1" = ${CHOOSE} ];then
	echo "inflate()"
	cp ramdisk.img 

gdb如何批量设置断点

由于gdb不能够保存设置的断点,所以我们只有用-x 参数导入一个相当于批处理的文件来设置断点了

我先用ctags来生成tag文件:

代码:
pjq@gentoo-pjq ~/svn/gsopcast-read-only/src $ ctags -f gsopcast.tag *.cc

然后再用命令解析出其中的函数:

代码:
cat gsopcast.tag |grep “(“|cut -d “/” -f2|cut -d “(” -f1|cut -d ” ” -f2|awk ‘NF>0’|sed ‘s/\^//g’|sed ‘s/\*//g’|sed ‘s/^/b /g’>bp.list

这样就生成了设置所有函数断点的文件了:

代码:
pjq@gentoo-pjq ~/svn/gsopcast-read-only/src $ cat bp.list
b

写了一个利用sp-sc-auth看网络电视的脚本

详见:http://gentoo-pjq.vicp.net/bbs/viewtopic.php?f=2&t=37&p=44&sid=492a625a38a1fd9af6983039d5443c01#p44

pjq@gentoo-pjq ~/sopcast $ cat psop.sh
#!/bin/sh
#pjq@gentoo-pjq.vicp.net
#USAGE:
#./psop.sh tvname
#example:
#./psop.sh cctv-1
#then you can use mplayer to play the tv
#mplayer http://127.0.0.1:8908

#define const
GCHLXML=/tmp/gchlxml
ITEM=/tmp/item
NAME=/tmp/name
TEMP=/tmp/tempfile
TV=$1
#Get the gchlxml if no existing file

shell编程基础

目前这篇文章全文转载自http://www.a5d.com/infoview/Article_1071.asp
格式做了较大调整,句子结构也进行了改动。希望大家能够不断的补充总结,形成自己的shell编程基础/入门指南。
鉴于论坛里无法进行方便的维护/改进,因此转至:
http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80

为什么要进行shell编程

Linux系统中虽然有各种各样的图形界面工具,但shell仍然是一个非常灵活的工具。Shell不仅集合了大量命令,还是一门非常棒的编程语言。借助shell,大量任务能实现自动化;shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。

下面,让我们一起来看看shell是如何工作的:

建立一个脚本

Linux中有许多种不同的shell,通常我们使用bash (bourne again shell) 进行shell编程,因为bash不仅免费(自由)且易于使用。本文提供的脚本都用bash(当然大多数情况下,这些脚本同样可以在bash的前辈, bourne shell中运行)执行。

如同其他语言一样,我们可以使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):

代码:
#!/bin/sh

符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。编辑完了,如果要执行该脚本,还必须使其可执行:

代码:
chmod +x filename

这样输入 ./filename 便可执行该脚本。

注释

shell脚本中以# 开始的行表示注释,直到一行的结束。我们真诚的建议你在脚本中使用注释,这样即便在相当长时间内没有使用该脚本,你也能在短时间内明白该脚本的作用和工作原理;此外还有很重要的原因——有了注释,更利于和别人分享你的脚本。

变量

在其它编程语言中,你必须使用变量。shell编程中,所有变量都由字符串组成,并且不需要声明。要给一个变量赋值,你可以这么写:

代码:
变量名=值

在变量名之前加一个$,就可以取出变量值:

代码:
#!/bin/sh
#对变量赋值:
a=”hello world”

# …