SHELL脚本编程入门

SHELL脚本编程入门

#!/bin/bash
# 0, 上面这一行,也就是文件第一行格式内容固定不变

# 1, 注释
# 第一行以下的内容中#以后的内容都是注释

# 2, 执行 abc.sh
sh /your_path/abc.sh

# 3, 打印
echo "abc"

# 4, 变量
STR="abc" #等号两边不能有空格
echo $STR
echo ${STR}
echo "123${STR}456"
echo "123\${STR}456"
echo '123${STR}456'

# 5, 字符串连接
STR1="abc"
STR2="def"
STR3="${STR1}${STR2}"
echo ${STR3}

# 6, 将一个shell命令的结果赋值给变量
DATE_STR=`date +%Y-%m-%d`
echo ${DATE_STR}

# 7, 函数,先定义后调用
_log() {
    echo "arguments: ${1}, ${2}"
}
_log "abc" "def"

# 8, if
A="a"
B="b"
C="c"
if [ "${A}" = "${B}" ] ; then #等号两边要有空格
    echo "a==b"
elif [ "${A}" = "${C}" ] ; then
    echo "a==c"
else
    echo "a!=b , a!=c"
fi

# 9, 提示用户输入内容并赋值给变量
echo "input: "
read STR
echo ${STR}

# 10, 变量相加/减/乘/除
kuco@ubuntu:~$ A=1
kuco@ubuntu:~$ B=A+1
kuco@ubuntu:~$ echo ${B}
A+1 #没有得到我们预想的2
kuco@ubuntu:~$ B=$((${A}+1)) #这种方法减/乘/除 同样适用
kuco@ubuntu:~$ echo ${B}
2 #成功!
kuco@ubuntu:~$ B=$(expr ${A} + 2) #这种方法也行,注意中间有空格
kuco@ubuntu:~$ echo ${B}
Posted in Linux, shell | Tagged , | Leave a comment

自动设置DIV字体大小填充DIV

在线演示

<script src="http://www.studyday.net/demo/jquery.js"></script>
<script language="JavaScript">
jQuery(document).ready(function($){
    $("#txt_input").keyup(function (){
        main();
    }).keydown(function (){
        main();
    }).change(function (){
        main();
    });

    function main(){
        var loopFlag = true;
        var divContentHeight = parseInt($("#div_content").css("height"));
        var htmlCode = $("#txt_input").val()+"<div id='div_mark' name='div_mark'></div>";
        $("#div_content").html(htmlCode);

        var fontSize = get_div_font_size();
        while (loopFlag){
            loopFlag = get_div_height()>divContentHeight ? true : false;
            if (loopFlag) {
                fontSize = fontSize-1;
                set_div_font_size(fontSize);
            }
        }

        loopFlag = true;
        while (loopFlag) {
            loopFlag = fontSize<50 && get_div_height()<divContentHeight ? true : false;
            if (loopFlag) {
                fontSize = fontSize+1;
                set_div_font_size(fontSize);
                if (get_div_height()>divContentHeight) {
                    fontSize = fontSize-1;
                    set_div_font_size(fontSize);
                    loopFlag = false;
                }
            }else {
                loopFlag = false;
            }
        }
    }

    function get_div_height(t){
        return parseInt($('#div_mark').offset().top - $('#div_content').offset().top);
    }

    function get_div_font_size(){
        return parseInt($("#div_content").css("font-size"));
    }

    function set_div_font_size(s){
        $("#div_content").css("font-size", s);
    }
});
</script>

<style type="text/css">
#div_content{padding:0px; margin:0px; border:1px solid #000000; width:180px; height:100px; overflow:hidden; font-size:50px;}
#div_mark{padding:0px; margin:0px; border:0px; border-top:1px solid #FF0000; height:0px;}
</style>

<div style="width:960px; margin:0 auto; padding-top:50px;">
    <textarea id="txt_input" name="txt_input" rows="5" cols="20"></textarea> <<输入汉字
    <div style="padding-top:10px;"><div id="div_content" name="div_content"></div></div>
</div>
Posted in JavaScritp, jquery | Tagged | Leave a comment

mysql 数据导入与导出

# 数据导出 mysqldump
# 导出一个表
/usr/local/mysql/bin/mysqldump -u root -character-set=utf8 -p -h 127.0.0.1 db_name table_name > /root/table.sql

# 导出一个库
/usr/local/mysql/bin/mysqldump -u root -character-set=utf8 -p -h 127.0.0.1 db_name > /root/db.sql

# 数据导入 source
/usr/local/mysql/bin/mysql -h localhost -u root -p
use db_name;
source /root/db.sql

# 数据导入 mysql
/usr/local/mysql/bin/mysql -h localhost -u root -p pwd db_name < /root/db.sql
Posted in Mysql | Tagged | Leave a comment

python 连接 mysql

部分内容参考自:
http://mysql-python.sourceforge.net/MySQLdb.html
http://peak.telecommunity.com/DevCenter/EasyInstall
http://blog.sina.com.cn/s/blog_57b671b601008bsw.html

1, 下载 MySQLdb 的库
下载地址 http://sourceforge.net/projects/mysql-python
会得到一个 *.egg (类似 MySQL_python-1.2.2-py2.4-win32.egg )

Read More »

Posted in Mysql, Python | Tagged , | Leave a comment

自制 python 批量压图程序

自个儿的相册缩图程序, 图个方便~ python 写的, 纯当练练手.

#!/usr/bin/env python
#coding=utf-8

import Image
import os
import sys

def go(in_dir, out_dir="", recursion="1"):
    '''
    准备,开始!
    '''
    if out_dir=="":
        out_dir = in_dir

    list_dir(in_dir, out_dir, recursion)

def list_dir(in_dir, out_dir, recursion):
    '''
    递归子目录, 如果是图片则开始压图, 如果是子目录,继续深入
    '''
    for listName in os.listdir(in_dir):
        if os.path.isdir(in_dir+listName):
            childInDirName = in_dir+listName+'/'
            childOutDirName = out_dir+listName+'/'

            if os.path.isdir(childOutDirName)==False:
                os.mkdir(childOutDirName)

            #print childInDirName+"\t"+childOutDirName
            if recursion=="1":
                list_dir(childInDirName, childOutDirName, recursion)
        elif os.path.isfile(in_dir+listName):
            base, ext = os.path.splitext(in_dir+listName)
            if ext!="" and ext.lower()==".jpg":
                #print in_dir+listName
                make_thumb(in_dir+listName, out_dir+listName)

def make_thumb(in_file, out_file):
    '''
    批量压图
    in_dir   : 输入目录
    out_dir  : 输出目录
    recursion : 递归子目录
    '''

    #输出图片宽不超过800, 高不超过600
    outMaxWidth = 800.0
    outMaxHeight = 600.0

    im = Image.open(in_file)
    #print str(im.size[0]) + "__" + str(im.size[1]) + "\n"
    imWidth = im.size[0]
    imHeight = im.size[1]

    proportion = wProportion = hProportion = 1.0

    if imWidth>outMaxWidth:
        wProportion = (outMaxWidth*100/imWidth)/100.0

    if imHeight>outMaxHeight:
        hProportion = (outMaxHeight*100/imHeight)/100.0

    if wProportion!=1 or hProportion!=1:
        proportion = min(wProportion, hProportion)

    #开始生成缩略图
    outWidth = imWidth*proportion
    outHeight = imHeight*proportion

    thumb = im.resize((int(outWidth), int(outHeight)), Image.ANTIALIAS)
    thumb.save(out_file, quality=100)

    print out_file

if __name__ == '__main__':
    go("D:/temp/", "D:/temp2/", "1")
    print "done"
Posted in Python, Tool | Tagged | Leave a comment

类MSN好友上线提示框

在线演示

<script language="JavaScript">
//自制类似MSN好友上线通过的弹出框
function popup(popup_name, div_id, div_width, div_height, ifr_src){
    this.popupName = popup_name;
    this.divId = div_id;
    this.divWidth = div_width;
    this.divHeight = div_height;
    this.ifrSrc = ifr_src;
    this.divObj = "";
    this.IE = 10; //浏览器版本
    this.p = 3;   //每次增加OR减少3px
    this.t = 10;  //多长时间一次

    //展开
    this.open = function (){
        var newHeight = parseInt(this.divObj.style.height)+this.p;
        var newTop = parseInt(this.divObj.style.top)-this.p;
        if (newHeight<=this.divHeight){
            this.divObj.style.height = newHeight+"px";
            if(this.IE<7){
                this.divObj.style.top = newTop+"px";
            }
            window.setTimeout(this.popupName+".open()", this.t);
        }else {
            this.divObj.style.height = this.divHeight+"px";
        }
    }

    //缩小
    this.close = function (){
        var newHeight = parseInt(this.divObj.style.height)-this.p;
        var newTop = parseInt(this.divObj.style.top)+this.p;
        if (newHeight>=0){
            this.divObj.style.height = newHeight+"px";
            if(this.IE<7){
                this.divObj.style.top = newTop+"px";
            }
            window.setTimeout(this.popupName+".close()", this.t);
        }else {
            this.divObj.style.height = "0px";
        }
    }

    //改变位置
    this.move = function (){
        var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
        var clientHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
        var newTop = parseInt(scrollTop+(clientHeight-this.divObj.offsetHeight-1));
        this.divObj.style.top = newTop+'px';
    }

    //创建DIV
    this.create = function (){
        if(navigator.appName == "Microsoft Internet Explorer"){
            var userAgent = navigator.userAgent;
            var s = 'MSIE';
            this.IE = parseFloat(userAgent.substr(userAgent.indexOf(s) + s.length));
            if(this.IE>=7){
                this.p = 3 * parseInt(this.p);
            }
        }
        if (document.getElementById(this.divId)){
            this.divObj = document.getElementById(this.divId);
        }else {
            this.divObj = document.createElement("div");
            document.body.appendChild(this.divObj);
            this.divObj.id = this.divId;
        }
        this.divObj.style.cssText = "width:"+this.divWidth+"px; height:0px; z-index:9999; overflow:hidden;";
        this.divObj.innerHTML = '<div style="position:relative; width:'+this.divWidth+'px; height:'+this.divHeight+'px;"><img alt="关闭" style="border:1px solid #000; width:15px; height:15px; position:absolute; z-index:10000; cursor:pointer; right:14px; top:14px;" src="http://van.ipart.cn/images2/space.gif" onclick="'+this.popupName+'.close();"><iframe id="'+this.divId+'_ifr" src='+this.ifrSrc+' frameborder="0" scrolling="no" width="100%" height="100%" allowtransparency="true"></iframe></div>';
        if(this.IE<7){
            this.divObj.style.position = 'absolute';
            this.divObj.style.right = '0px';
            this.divObj.style.top = '0px';
            this.move();
            var updPosition = this.popupName+'.move();';
            window.attachEvent("onscroll", function(){eval(updPosition);});
            window.attachEvent("onresize", function(){eval(updPosition);});
        }else {
            this.divObj.style.position = 'fixed';
            this.divObj.style.right = '0px';
            this.divObj.style.bottom = '0px';
        }
        this.open();
    }

    //启动
    this.create();
}

//调用方式
popupObj = new popup("popupObj", "popup_notifications", "295", "245", "http://hi.baidu.com/ui/text/refer.html");
</script>
Posted in Css, JavaScritp | Tagged , | Leave a comment

windows 下安装 Cassandra

部分内容参考自这里, 这里, 这里

1, 安装好JAVA6

我下载的 jdk-6u6-windows-i586-p.exe
安装在 C:\Program Files\Java\jdk1.6.0_06 目录中

2, 下载好Cassandra

下载地址 http://incubator.apache.org/cassandra/
解压到要安装的目录, 我下载的 0.5.1 版本解压在 D:\cassandra 目录中

Read More »

Posted in Tool | Tagged , , | Leave a comment

ubuntu下安装lampp+memcache

部分内容来自这里
部分内容来自这里
部分内容来自这里

##########################
# LAMPP部分
##########################
1, 下载 http://www.apachefriends.org/zh_cn/xampp-linux.html

2, 安装

sudo su #切换到root用户用户
tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt #安装

就这样结束了。XAMPP 被安装在 /opt/lampp 目录下。

Read More »

Posted in Linux, PHP, Tool | Tagged , , | 1 Comment

自己常用的几款 FireFox 插件

1, firebug, 在线安装
相信每个开发者必备的超强页面调试工具,如果你没有那你就OUT了!

Read More »

Posted in Firefox, Tips, Tool | Tagged , , | Leave a comment