2013-02-07 43 views
0

我试图在我的bash_profile中编写一个命令来替换emacs文件(如果它存在),如果它不存在,将复制模板到默认emacs命令新文件,然后emacs的。Bash:在bash_profile中重写emacs命令

我尝试什么:

function emacs() 
{ 
if [ ! -f ${1} ]; then \ 
cp /FILEPATH/template.sh ${1}; fi; 
builtin emacs ${1} 
} 

,但我得到的错误是“-bash:内置:emacs的:不是一个shell内建”

如何创建一个新的功能,以取代emacs命令,然后在emacs不是内置命令的情况下调用该函数中的原始emacs命令?

回答

1

你想要command emacs而不是builtin emacs。请参阅help command

顺便说一句,emacs对新文件模板有某种内部支持吗?你可能想看看这个:http://www.emacswiki.org/emacs/TemplatesMode。 (免责声明:我不使用emacs;这只是我在搜索“emacs新文件模板时发现的第一个页面中的一个。)

0

(编辑:对不起,command emacs在对方的回答是好,使用。)

builtin只适用于实际的shell内建像testread,...

使用emacs的显式路径相反:

function emacs() 
{ 
if [ ! -f ${1} ]; then \ 
cp /FILEPATH/template.sh ${1}; fi; 
/usr/bin/emacs ${1} 
}