为列表中的每个项添加标记

时间:2014-10-20 19:43:55

标签: bash mutt

我想将一个png列表附加到一封带有mutt的电子邮件中,所以我这样做了

attachment=""
for png in $(ls *.png); do attachment="$attachment -a $png"; done
mutt $attachment 

获取此命令mutt -a pic1.png -a pic2.png -a pic3.png。关于如何做到这一点的任何更好的想法?

2 个答案:

答案 0 :(得分:1)

您可以使用BASH数组:

arr=(*.png)
printf " -a %s" "${arr[@]}";

答案 1 :(得分:0)

由于mutt将接受命令:

mutt -apic1.png -apic2.png -apic3.png

-a和文件名之间没有空格),一个很好的可能性如下:

shopt -s nullglob

files=( *.png )
mutt "${files[@]/#/-a}"

shopt -s nullglob以便不匹配的glob扩展为空。

"${files[@]/#/-a}"的扩展与"${files[@]}"的扩展类似,但每个字段都附加-a

如果您的文件名包含空格或其他有趣的符号,则100%安全。

相关问题