我正在尝试在我的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命令?
答案 0 :(得分:1)
您需要command emacs
,而不是builtin emacs
。请参阅help command
。
顺便说一句,emacs
是否对新文件模板有某种内部支持?您可能想看看这个:http://www.emacswiki.org/emacs/TemplatesMode。 (免责声明:我不使用emacs
;这只是我在搜索“emacs新文件模板时”找到的第一个页面之一。)
答案 1 :(得分:0)
(编辑:对不起,command emacs
在另一个答案中更好,请使用它。)
builtin
仅适用于test
,read
等实际的内置内置版本。
使用emacs的显式路径:
function emacs()
{
if [ ! -f ${1} ]; then \
cp /FILEPATH/template.sh ${1}; fi;
/usr/bin/emacs ${1}
}