![Linux mail(x) 命令。无法打开或使用。只会吐出旧消息并返回提示](https://linux22.com/image/663285/Linux%20mail(x)%20%E5%91%BD%E4%BB%A4%E3%80%82%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%E6%88%96%E4%BD%BF%E7%94%A8%E3%80%82%E5%8F%AA%E4%BC%9A%E5%90%90%E5%87%BA%E6%97%A7%E6%B6%88%E6%81%AF%E5%B9%B6%E8%BF%94%E5%9B%9E%E6%8F%90%E7%A4%BA.png)
(Debian 压缩)
我正在编写一个 shell 脚本,该脚本将输出通过管道传输到 mail 命令。我肯定做错了什么,因为我再也无法使用该命令了。即使我输入不带任何参数的“mail”,它只会输出我之前尝试通过电子邮件发送的内容,但随后会返回提示符。无论我使用哪个参数,都会出现相同的输出。
我们不使用本地邮件存储,并且我已经删除了 /var/mail 和 /var/spool/mail(一个是另一个的链接)中的所有用户文件,但就我而言,我无法弄清楚如何重新使用此命令。
我正在努力通过任何形式的搜索来解决这个问题,因为搜索词似乎太模糊了。
答案1
我怀疑你在某些时候不小心做了类似的事情:
....command... > /usr/bin/mail
代替
....command... | /usr/bin/mail
从而/usr/bin/mail
用一些数据的副本进行替换。
我建议您重新安装邮件程序。由于 Debian 提供了多种替代方案,因此您可以使用以下命令找到已安装的程序:
root@www:~# ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2011-04-04 02:48 /usr/bin/mail -> /etc/alternatives/mail
root@www:~# ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 18 2011-04-04 02:48 /etc/alternatives/mail -> /usr/bin/bsd-mailx
因此邮件程序是真的 /usr/bin/bsd-mailx
在这个系统上。让我们找出它来自哪个包:
root@www:~# apt-file search /usr/bin/bsd-mailx
bsd-mailx: /usr/bin/bsd-mailx
最后我们将重新安装该软件包。
root@www:~# apt-get install --reinstall bsd-mailx
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
Need to get 155kB of archives.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]?