技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

随笔分类 -  UNIX&Linux

上一页 1 2 3 4 下一页

寡人的接口设计是不是很赞呢
摘要:@include lib/assert.awk@include lib/logging.awk######################################################################################################## PUBLIC FUNCTIONS ################################################... 阅读全文

posted @ 2013-06-08 22:29 codestyle 阅读(465) 评论(0) 推荐(0) 编辑

Crontab的格式
摘要:第1列分钟1~59第2列小时1~23(0表示子夜)第3列日1~31第4列月1~12第5列星期0~6(0表示星期天)第6列要运行的命令下面是crontab的格式:分 时 日 月 星期 要运行的命令这里有crontab文件条目的一些例子:30 21 * * * /usr/local/apache/bin/apachectl restart上面的例子表示每晚的21:30重启apache。45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart上面的例子表示每月1、10、22日的4 : 45重启apache。10 1 * * 6,0 /usr/l 阅读全文

posted @ 2013-05-31 19:37 codestyle 阅读(230) 评论(0) 推荐(0) 编辑

awk新风格(模块化)的业务代码
摘要:main.sh (程序入口代码)参数DEBUG会决定logging模块的debug函数是否输出日志以方便调试,这其实是我目前形成的理念之一:一旦我决定在这里写下一个输出语句方便调试,那么这个语句我就不会再删除了我见过很多的研发人员(包括以前的我自己)喜欢在程序里加上一堆输出语句(alert,printf,MessageBox)打印一堆没有什么含义的语句(例如ssssssss,111111)以及变量的值,之后再删掉,删掉之后在添加,添加之后再删除。。。其实,他们是为了确定程序状态,看看程序有没有运行到添加输出语句的位置,或者想想看看程序在那个时刻的值到底是啥,但是他们觉得这些日志语句不属于业务逻 阅读全文

posted @ 2013-05-26 19:53 codestyle 阅读(413) 评论(0) 推荐(0) 编辑

转:談談gawk 裡的 igawk
摘要:http://bbs.chinaunix.net/thread-1450345-1-1.html我們寫腳本,很多情況下是一次性的,所以傾向寫一些常用的函數掉用,例如我的$HOME/lib/awk 就寫了一些函數, 然而怎樣掉用這些函數,不成每用一次就複製到腳本上,我在命令列又如何掉用呢?鑑於這種需求,Gnu awk為使用者提供了一個變量,和一個可以包含你寫的函數的命令,他們就是 AWKPATH 和 igawkAWKPATH 這個變量內定的路徑為 , 手冊上答案是.:/usr/local/share/awkhttp://www.gnu.org/manual/gawk/html_node/AWKP 阅读全文

posted @ 2013-05-15 01:22 codestyle 阅读(382) 评论(0) 推荐(0) 编辑

awk的模块化方案,在这公司苦逼很久以后想到的
摘要:test.sh#!/bin/shecho demos | igawk -f test.awktest.awk#!/usr/bin/igawk -f@include common.awk{ filename = $0 makeArray(filename,array) printArray(array) makeInsertSQL("aaa",array,"test.sql")}common.awkfunction sayHello(s,_ARGVEND_){ print "hello "s}function makeArray(fil 阅读全文

posted @ 2013-05-14 20:15 codestyle 阅读(449) 评论(6) 推荐(0) 编辑

重写之后的脚本。希望还好
摘要:#!/bin/sh################################################ ## author:lishujun ## date:2013-4-17 ## use:$./testread.sh 20130425 ## ##########... 阅读全文

posted @ 2013-04-30 19:18 codestyle 阅读(201) 评论(0) 推荐(0) 编辑

awk消除重复代码的方案1
摘要:#!/bin/shawk 'function createArray(filename,arrayname){ while(getline<filename == 1)#等于1的判断是必须的,否则文件不存在会产生死循环 { arrayname[$1] = $2 print arrayname[$1] } print ""}END{ createArray("aaa.txt",a); createArray("bbb.txt",b); print "output content of aaa.txt" 阅读全文

posted @ 2013-04-24 17:04 codestyle 阅读(224) 评论(0) 推荐(0) 编辑

这是我写的
摘要:因为英文太烂,写不了英文注释,说以在这补一下这个脚本的功能说明:这个脚本是统计书籍的订购量,订购用户数,浏览量等信息(以天为单位),这里的书籍,是按章销售的,所以记录的最小粒度是章节的订购量,订购用户,那么脚本就需要根据bookId为唯一标识,去累加各章(在某一天的)的数据,汇总到一本书下。基本流程是:清理上次计算产生的临时文件下载最新的数据到临时文件统计 并将结果生成SQL脚本执行SQL脚本入库其中统计又分为3.1从临时文件创建一个books数组(他是一个复合数据结构,每本书的属性都可以通过books[id,"属性"]索引)3.2遍历章节销售记录,根据记录里的bookId 阅读全文

posted @ 2013-04-14 20:43 codestyle 阅读(365) 评论(1) 推荐(0) 编辑

我发誓,这真不是我写的
摘要:1 #!/bin/sh 2 3 echo "$0 start at `date +"%F %k:%M:%S"`" 1>&2 4 5 cd /www/scripts/stat/ 6 . stat_date.sh 7 . dblist.sh 8 9 . public_func 10 11 stat_date=`riqi $1` 12 instime=`date -d"$stat_date" +'%F'` 13 last_date=`date -d"$stat_date 1 day ago" 阅读全文

posted @ 2013-04-14 20:39 codestyle 阅读(439) 评论(0) 推荐(0) 编辑

Linux下log4shell的安装和使用
摘要:http://blog.chinaunix.net/uid-78707-id-2603396.htmlLog4shell是开放源代码项目Apache Logging Service的子项目log4j在shell下的实现,用于为shell程序提供日志功能,以便开发者对目标程序进行调试和审计。虽然shell可以方便的操作文件,但通过成熟的日志框架更方便我们对日志的记录与处理。 要安装log4shell,必须先安装log4cxx,因为log4shell是基于log4cxx实现的,关于log4cxx的安装,参照我的另一篇文章:http://blog.chinaunix.net/space.php?ui 阅读全文

posted @ 2013-04-10 13:20 codestyle 阅读(1094) 评论(0) 推荐(0) 编辑

Awk 中变量作用域的问题(Awk模块化,转载者自己添加的补充信息)
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-awkf/温 泉(saphires@sohu.com), 软件工程师, 捷思锐科技(北京)有限公司简介:本文从两个错误的例程开始,提出 Awk 中全局变量污染的现象,并分析其发生的原因。接下来,针对 Awk 变量作用域的特点,提出两种避免全局变量污染的常用方法,引出 Awk 中定义局部变量的方法,并提出修改过后的代码。然后,通过 Awk 的变量调试功能,提出修改过后代码存在的不足,并引出编写通用函数应注意的地方。最后,通过简单说明 Awk 中包含头文件的方法,倡导大家更科学,更有效的使用 Awk 这 阅读全文

posted @ 2013-04-03 11:07 codestyle 阅读(710) 评论(0) 推荐(0) 编辑

perl函数指针
摘要:看来的代码,测试通过#!/usr/bin/perlsub func1 { print "func1 is running\n";}sub func_test { my $func_ref = shift; # ref will return 'CODE' if it's function reference if ( ( ref($func_ref) eq "CODE" ) && defined( &{$func_ref} ) ) { &{$func_ref}; print $@ if $@; } 阅读全文

posted @ 2013-04-02 13:18 codestyle 阅读(669) 评论(0) 推荐(0) 编辑

perl杂记
摘要:函数#! /usr/bin/perl#传参测试sub hello{ print $_[0];}&hello("hello,world\n");#返回值测试sub max{ if ($_[0] > $_[1]) { return $_[0]; } else { return $_[1]; }}$n = &max(10,23);prin}test( 模拟函数指针#! /usr/bin/perlsub hello{ print $_[0];}&hello("hello,world\n");#模拟函数指针的测试@funcPoi... 阅读全文

posted @ 2013-04-02 11:53 codestyle 阅读(165) 评论(0) 推荐(0) 编辑

awk学习杂记
摘要:#! /bin/sh#awk '{ print }' /etc/passwd#awk -F":" '{ print $1 }' /etc/passwdawk 'BEGIN{testArray["a"]="aaa";testArray["b"]="bbb"}function test(){ #print $1; print testArray["a"] print testArray["b"]}test();END{p 阅读全文

posted @ 2013-04-02 09:51 codestyle 阅读(114) 评论(0) 推荐(0) 编辑

shell的函数
摘要:环境:ubuntu10.10 + bash函数定义以及传参#! /bin/shtest(){ echo $1 #打印第一个参数}a='hello,world'test $a #参数必须是定义好的变量传递两个参数#! /bin/shtest(){ echo $1 #打印第一个参数 echo $2 return 127 #只能返回整数}test 'hello,world!' 'lishujun' #传递两个参数echo $? #取得函数返回值,调用完毕立即取值取得返回值#! /bin/shtest(){ echo $1 #打印第一个参数 return 阅读全文

posted @ 2013-04-01 17:13 codestyle 阅读(199) 评论(0) 推荐(0) 编辑

转:为什么 Vim 使用 HJKL 键作为方向键
摘要:有一天我在看一些有关 Vim 的东东时,发现了它为什么用 HJKL 键作为方向键的原因了。当Bill Joy创建 Vi 文本编辑器时,他使用的机器机器是ADM-3A终端机,这机器就是把 HJKL 键作为方向键。自然而然,Bill Joy 也就用了相同的按键了。HJKL 键 就是下面这个样子的:ADM-3A 终端机键盘上的 HJKL 键同时带有箭头下面就是 ADM-3A 终端机全貌,Vi 就是在这上面创造的。ADM-3A 终端机全貌既然 Vim 是源自 Vi,所以也就使用了相同的 HJKL 键。下面是ADM-3A 终端机键盘电路板,注意 ESC 键紧挨着 Q 键左侧:(点击可查看超大图)这也就是 阅读全文

posted @ 2012-10-18 15:20 codestyle 阅读(556) 评论(0) 推荐(0) 编辑

请教路神APUE源码编译
摘要:CFANS·镇宅神兽(58135482) 16:30:15 我入手了macbook air非常路<luzte@qq.com> 16:30:29 你入手前可以问我CFANS·镇宅神兽(58135482) 16:30:33 结果想要编译APUE代码,用来学习非常路<luzte@qq.com> 16:30:38 我可以介绍较为便宜的水货CFANS·镇宅神兽(58135482) 16:30:48 结果怎么都不行非常路<luzte@qq.com> 16:31:00 你的是第二版的教材吗?CFANS·镇宅神兽(58135482) 阅读全文

posted @ 2012-09-15 23:43 codestyle 阅读(299) 评论(0) 推荐(0) 编辑

Macbook Air上编译APUE源码
摘要:整体编译代码1 解压src.rar, 释放文件到当前用户的根目录下(/Users/lishujun/)2 进入/Users/lishujun/apue.2e3 修改Make.define.macos文件,在文件里指定源码所在目录WKDIR=/Users/lishujun/apue.2e4 进入/Users/lishujun/apue.2e/include目录,修改apue.h#if defined(SOLARIS) #define _XOPEN_SOURCE 500 /* Single UNIX Specification, Version 2 for Solaris 9 */ #d... 阅读全文

posted @ 2012-09-15 23:35 codestyle 阅读(505) 评论(0) 推荐(0) 编辑

ubuntu安装启动redis
摘要:1、下载安装cd /tmpwget http://redis.googlecode.com/files/redis-2.2.13.tar.gztar -zxf redis-2.2.13.tar.gzcd redis-2.2.13makesudo make install这时Redis 的可执行文件被放到了/usr/local/bin2、下载配置文件和init启动脚本:wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-serverwget https://github.com/ijonas/dotfiles/r 阅读全文

posted @ 2012-09-10 18:14 codestyle 阅读(385) 评论(0) 推荐(0) 编辑

ubuntu下apache&php&虚拟主机开发环境配置
摘要:sudo apt-get install apache2sudo apt-get install php5sudo apt-get install libapache2-mod-php5sudo apt-get install php5-curl #安装curl库用于通信cd /etc/apache2sudo vi ports.conf#增加下面2行(不含#号和空格)# NameVirtualHost *:7000# Listen 7000cd /etc/apache2/sites-enabledsudo vi 000-default#增加下面三行# <VirtualHost *:700 阅读全文

posted @ 2012-08-28 15:05 codestyle 阅读(210) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页
点击右上角即可分享
微信分享提示