uuencode text.txt | mail -s "hai" "[email protected]" < body.txt
执行此命令后,终端为空白。它没有提示下一个命令。我必须按 ctrl+z 才能返回终端。
可能是什么问题呢?
答案1
好吧,你不要这样做;-) 不过,尝试不错!
您使用管道“|”将 uuencode 命令的输出写入 mail 命令的输入通道(又称 stdin,标准输入)。您还使用 shell 重定向“<”将 body.txt 文件的内容写入 mail 命令的输入通道。
这很含糊。我现在不确定什么优先,或者 shell 如何处理这种情况。您可能最终会遇到其中一个程序要求输入的情况。
更好地阐明 shell,要做什么,按什么顺序做。例如,这样写:
(cat body.txt; uuencode text.txt) |mail -s "hai" "[email protected]"
这将一次性执行 cat (文件打印机)和 uuencode(由于括号,准确地说是在子 shell 中),并将公共输出通过管道传输到邮件程序