使用管道和参数来别名化命令的问题


1

注意:我使用tcsh。

我正在尝试创建一个别名,该别名将使用mutt命令发送带有预先编写的正文和主题行的电子邮件,但是它将使用alias参数并将其附加到电子邮件中。我目前拥有的最好的是:

alias emailattach 'echo "Message Body" | mutt -a \!:1 -s "Subject" email@somewhere.com'

这个别名设置得很好,没有任何抱怨,但是当我尝试运行它时,我收到以下消息:

Can't stat email@somewhere.com: No such file or directory
email@somewhere.com: unable to attach file.

删除后,-a \!:1 我不再收到错误消息,因此我认为问题可能集中在别名的这一部分。我已告知emailattach要附加的文件是真实的可附加文件(特别是PDF),所以这不是问题。

我也尝试了相同的别名,但是没有单引号,并且我仅收到此错误:

email@somewhere.com: unable to attach file.

为了查看管道是否是问题的症结,我尝试了以下操作:

alias emailattach mutt -a \!:1 -s "Subject" email@somewhere.com

然后尝试运行:

echo "Message Body" | emailattach /path/to/attachment

它给出了与我第一次列出(can't stat... unable to attach file.)相同的错误消息。但是,当我刚运行时:

echo "Message Body" | emailattach 

我收到此错误:

Bad ! arg selector.

我认为这只是一个错误,我忘记输入必需的参数。

我在别名中写错了哪些使其无法正常工作?

Answers:


2

尝试改变您的位置alias,以便附件在您的通话中排在最后,mutt就像这样:

$ alias emailattach 'echo "Message Body" | mutt -s "Subject" email@somewhere.com -a \!:1'

这样做对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.