linux 脚本里计算加减乘除(续)

还是对unix/linux不够熟悉啊,bc这个强大的计算器我怎么能够忽略呢?用于科学计算,expr相对来说还是有点捉襟见肘的,比如浮点数的计算,expr就有些无能为力。bc的详细功能在手册里面都有了,这里简单介绍用法。

  • bc [ -hlwsqv ] [long-options] [  file ... ]s

bc的输入是文件,如果在命令行想直接使用的话,就要用管道进行串联了。

  • echo “scale = 2; 5 / 2″ | bc -l

结果输出是:2.50。scale表示小数点后保留多少位。bc的其他强大的功能,参考手册吧。

对了,bash脚本可以直接实现自加,比如

  • i=1
  • echo $((++i))
Posted by 王永杰 in linux应用, 技术为本 - Comments (0)
25 08月

linux 脚本里计算加减乘除

linux下面计算加减乘除,其实也就是一个小程序,名字是”expr”。这个程序很好用,不过有一点需要注意,就是不要忘了使用空格和转义,比如计算两个数的乘法,应该这样写:

  • expr 1024 \* 1024

其实还是很简单的,这儿有份不错的参考文档,这个程序可不光能计算加减乘除哦,很多表达式,他都可以计算出结果。
expr 命令:http://study.chyangwa.com/IT/AIX/aixcmds2/expr.htm

Posted by 王永杰 in linux应用, 技术为本 - Comments (0)
22 08月

bash 脚本 - 输出流重定向至错误流(stderr)

在C/C++里,都有各自的方法用于向错误流写数据。如:

  • fprintf(stderr, “Hello World\n”);
  • cerr << “Hello World” << endl;

在bash脚本里,可以用echo “Hello World”向标准输出写入数据,可如何像标准错误流写入数据呢?同样有两种方法:

  • echo “Hello World” >> /dev/stderr
  • echo “Hello World” >&2

(阅读全文……)

Posted by 王永杰 in linux应用, 技术为本 - Tags: , , , - Comments (0)
19 08月

pure-ftpd 浏览器访问时弹出登录框

安装了pure-ftpd,限制了匿名用户的登录,可是在用浏览器直接输入地址回车后,没有出现提示输入用户名和密码的登录框,而是需要直接指定用户名或者右键点击登陆。这样用起来会有点不太方便,还是google搜到了解决办法,只是一个配置项的设置问题。

# 兼容ie等比较非正规化的ftp客户端
BrokenClientsCompatibility yes

这样就可以了,看着弹出来的提示框,爽!!

参考链接:
http://hi.baidu.com/jufeis/blog/item/5ec6840a50f20b1c94ca6bd5.html
http://forum.ubuntu.org.cn/viewtopic.php?t=28052&highlight=pure-ftpd

15 08月

debian/ubuntu中如何阻止软件包的升级(转载)

If you want to update all the packages other than one package in your Ubuntu system follow this procedure There are three ways of holding back packages, with dpkg, aptitude or with dselect.

Using dpkg

Put a package on hold

sudo echo “package hold” | dpkg --set-selections

Example (阅读全文……)

Posted by 王永杰 in linux应用 - Comments (0)
15 08月

如何合并文本文件

今天部门一个同事提了一个需求,要把若干个txt格式的文本文件合并在一起。需求看起来很简单,我的第一反应是写一个脚本实现这个功能,可是下午事情多,写脚本的时间也没有。于是用更便捷的方法,网络和同学帮助找到了若干个答案,很快解决了真个问题。

  1. 借助于Word:将所有的文本文件置于同一个文件夹中,打开Word并新建一个空白文档,然后单击菜单“插入→文件”,在弹出的对话框中将“文件类型”设置为“文本文件”,最后将所有要合并的文本文件全部添加进来即可。
  2. 借助于copy命令:同样将所有的文本文档拷贝到同一个文件夹,打开命令行控制台,切换到存放文本文件的目录,再使用命令“copy *.txt c:\merged.txt”(c:\merged.txt为存放目标文件的路径及合并后的文件名)。
  3. linux下面也可以实现,cat *.txt > c:\merged.txt

值得注意的是,第一种合并文本的方式会自动在各个子文本内容之间插入换行符,而其他两种都不行。

Posted by 王永杰 in 技术为本 - Comments (0)
9 08月

VIM自动给脚本加注释(转载)

写程序的时候给代码注释有时候蛮烦人的,尤其是用英文写注释的时候,不过养成写注释的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。

VIM 里面可以使用映射(map)来帮你自动插入这些信息,就像下面这样

#****************************************************
#         Author: Muddyboot - toobyddum@gmail.com
#  Last modified: 2007-08-10 21:19
#       Filename: /etc/vimrc
#    Description: Configuration for vim editor
#****************************************************

其中 Last modified 后面的时间是根据当前时间自动插入的,Filename 后的文件名也是当前编辑的文件名。 (阅读全文……)

5 08月