编写Shell 脚本时,如果变量的值是一个路径的话,我们可以轻易的解析路径path信息,就像php中的pathinfo一样,来获取当中的路径(dirname) 或档名(basename).

变量		结果			说明
${path}		/usr/local/bin/emacs	原本值
${path#/*/}	local/bin/emacs		去除第一个资料夹
${path##/*/}	emacs			只取档名(basname)
${path%/*}	/usr/local/bin		只取路径(dirname)
${path:15}	emacs			取第15个字元后的所有字元
${path:10:4}	/bin			取第10个字元后的4 个字元

最后两个用法和Java 的subString 相同。


阅读全文

svn: 提交失败(细节见下):<br /> svn: 无法使用外部编辑器取得日志信息;请尝试设定 $SVN_EDITOR 环境变数,或是使用 --message (-m) 或 --file (-F) 选项<br /> svn: 没有一个 SVN_EDITOR,VISUAL 或 EDITOR 环境变数被设定,执行时期的设定中也没有 'editor-cmd' 选项

解决方法: 设置vim为你的SVM_EDITOR

命令:

export SVN_EDITOR=vim

如果希望该环境变量能永久生效,把以下这行添加到你的个人文档目录下的.bash_profile文件中即可。文件路径~/.bash_profile

export SVN_EDITOR=vim

阅读全文

svn在Linux下的使用(svn命令)

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://192.168.1.1/pro/domain

简写:svn co

2、往版本库中添加新的文件

svn add file

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库

svn commit -m “LogMessage“ [-N] [–no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“ test.php

简写:svn ci


阅读全文

Cygwin下安装thrift,使用bootstrap.sh时候,提示./bootstrap.sh: line 24: autoscan: command not found,需要安装autoscan,而在Cygwin下搜索autoscan又没搜索到,Google下,有人说搜索autotools,也没搜索到。。最后分别搜索M4,autoconf,automake,安装这三个就可以了。
阅读全文

在awk中,是支持自定义函数的,格式如下:

function name ( parameter, parameter, parameter, ... ) {
                        statements
                        return expression                  # the return statement and expression are optional
        }

但是此段代码块的位置并不是在BEGIN内进行定义,而是紧随在BEGIN之后,具体格式如下:

awk
'BEGIN{
   // do something ...
}
function name(para1, para2){
// do something ...
}
{
    // do something...
    name(a, b);
}
END{
    // do something...
}' filename

阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Development Engineer

Beijing China