Email

使用管道和參數為命令別名的問題

  • July 22, 2018

注意:我使用 tcsh。

我正在嘗試創建一個別名,該別名將使用 mutt 命令發送一封帶有預先編寫的正文和主題行的電子郵件,但這將採用別名參數並將其附加到電子郵件中。我目前擁有的最好的是:

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 statunable to attach file.)。但是,當我剛跑時:

echo "Message Body" | emailattach 

我收到了這個錯誤:

Bad ! arg selector.

我認為這只是一個錯誤,說我忘了輸入所需的參數。

我在別名中寫錯了什麼使其無法正常工作?

嘗試改變你的alias周圍,以便附件在你的通話中最後一個mutt這樣:

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

這樣做對我有用。

引用自:https://unix.stackexchange.com/questions/81404