alias和shell function
使用Unix/Linux的朋友大多知道alias(别名)的用法,alias 可以简化我们的命令输入,比如:
alias ll = 'ls -l' alias la = 'ls -A'
当我们执行了以上的命令后,以后只要在shell中输入ll,shell会自动按照设置执行ls -l命令。
alias(别名)的确简单,好用,效果立现。不过如果我们的要求稍微复杂一点,比如:我们希望创建命令别名可以带可变的命令参数,alias这时候就爱莫能助了,幸好我们有同样简单好用的shell function.
语法:
[ function ] name () { command-list; }
shell function的作用是当在shell中执行name时,command-list所代表的一系列命令将会执行。在上述定义中关键词function可以不用写。
举例:
我有一个叫fancy_writer的很好用编辑工具,但是这个程序名字太长,我希望输入fa就能运行它,当然这样的要求,我们完全可以用alias做到,但是我现在希望fa能接受后面的文件名作为其编辑对象(这对alias也没问题),同时希望程序能在后台执行(这时alias就困难了),而用shell function 就轻松搞定了:
function fa() { fancy_writer $1 &; }
将这段小代码写入.bashrc或.profile,这样我们登录shell时就可以使用fa这个shell function了。
另外,与unalias相似,要暂时取消shell function可以使用
unset name













博主,你好。
曾在你blog上看过vim发布日志一文,小弟现在用的正是这种方法。但还剩一个小问题久未解决。特来咨询啊。您本文的shell代码部分应该是嵌在类似 .. code-block:: c ,我的问题是我每当我用到code-block时,这块代码里如果有&这个符号,它最终会显示成& 而看您本文的代码,并未出现此问题。我试过手动rst2html.py生成的html是不存在这个问题的。所以问题只可能出在rest.php这个插件或wordpress自身上。不知可否能将您的rest.php及本文的.rst发到我的邮箱nybornhawk@126.com,不胜感激!
晕阿,上文显示有些错误,我的意思是code-block里的&会最终显示成”&”
咦,我的回复中的&后面跟着的井038;怎么没显示出来,是做了什么特殊处理吗,请教给小弟一下