如何定义包含此处文档的别名



我有一个命令,我可以按如下方式执行:

$ cmd<<EOF|gvim -

试图在我的 .alias 文件中为命令添加别名:

alias cmd='cmd<<EOF|gvim -'

当我获取别名文件时,我得到:

$ . ./.alias
bash: ./.alias: line 14: unexpected EOF while looking for matching `''
bash: ./.alias: line 15: syntax error: unexpected end of file

如何定义正确的别名?谢谢。

如果您的命令行以cmd<<EOF|gvim -开头,这意味着您需要使用EOF终止此处文档(我假设您是手动输入的(。相反,只需让cmd从标准输入读取,您可以使用Control-d终止标准输入。

也就是说,而不是

$ cmd<<EOF | gvim -
> your text
> goes here
> EOF

您使用

$ cmd | gvim -
your text
goes here
^d

其中^d只是Control-d

然后,您可以定义一个函数

mycmd () {
cmd | gvim -
}

作为一般规则,请避免定义别名,这些别名除了向单个命令添加选项外,还执行任何操作,例如alias ls='ls --color'