Bash:在bash_profile中重写emacs命令

时间:2013-02-07 15:01:04

标签: bash emacs .bash-profile

我正在尝试在我的bash_profile中编写一个命令来替换默认的emacs命令,该命令会将文件存在(如果存在),如果它不存在,则将模板复制到新文件然后将其复制。

我的尝试是:

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

但我得到的错误是“-bash:builtin:emacs:不是内置的shell”

如果emacs不是内置命令,如何创建新函数来替换emacs命令,然后在该函数中调用原始emacs命令?

2 个答案:

答案 0 :(得分:1)

您需要command emacs,而不是builtin emacs。请参阅help command

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

答案 1 :(得分:0)

(编辑:对不起,command emacs在另一个答案中更好,请使用它。)

builtin仅适用于testread等实际的内置内置版本。

使用emacs的显式路径:

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