Email
使用管道和參數為命令別名的問題
注意:我使用 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 stat
…unable 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'
這樣做對我有用。