小编one*_*ion的帖子

Ubuntu 20.04 中针对来自 mailutils 的邮件发送带有文本和附件的电子邮件的行为发生了变化

在 Ubuntu 16.04 中,我使用以下命令发送包含文本和附件的电子邮件,效果很好。

echo "body" | mail -s "Subject" -A "/path/to/attachment" "email@adress"
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 20.04 中,此命令也将正文部分作为附件附加。邮件版本是 3.7。

仅发送附件或仅发送正文工作正常。

这个问题是关于来自 mailutils 的邮件,而不是 mutt 或 mailx 或 sendmail 等。非常欢迎解决方案。多谢!

email bash

5
推荐指数
1
解决办法
1220
查看次数

为什么在Bash中使用未设置的变量作为数组索引返回元素0?

为什么bash数组中的空键始终是零键元素?

尝试

empty_key=

h[0]=0
h[1]=1
h[2]=2

echo ${h[$empty_key]}
Run Code Online (Sandbox Code Playgroud)

结果

0
Run Code Online (Sandbox Code Playgroud)

您能否解释一下,为什么这种行为是正确的?

以我的理解,它应该与

not_existing_key=5 
echo ${h[$not_existing_key]}
Run Code Online (Sandbox Code Playgroud)

结果是空的。

了解这一点很重要,如果有人将结果用于循环,例如

for element in ${h[$key]};do
  ...
done
Run Code Online (Sandbox Code Playgroud)

其中empty_key导致一个循环,但不是not_existing_key。

为了避免这种行为,显然不要以索引0开始数组

要么

将空键替换为任何未分配的键值(看起来很无聊)。

再一次我的问题是:为什么这种行为是正确的?

编辑:我的问题应该理解为为什么这种行为在bash世界中是首选的,而不是没有键值的空结果?

arrays bash

1
推荐指数
1
解决办法
49
查看次数

标签 统计

bash ×2

arrays ×1

email ×1