#!/bin/bash
BASE=~/.maildir
EXCEPTIONS="Spam Search system"
shopt -s extglob dotglob
EXCEPTIONS=${EXCEPTIONS// /|}
for mailbox in $BASE/!(+([^.])|.+($EXCEPTIONS)); do
echo $mailbox
INDEX+="$mailbox "
done
nmzmail -i $INDEX
## The problem is that some mailboxes contain spaces, they work if
## I run from the command line:
## nmzmail -i "mailbox 1" "mailbox 2"
## But not if I run:
## nmzmail -i mailbox 1 mailbox 2
## nmzmail -i "mailbox 1 mailbox 2"
## nmzmail -i mailbox\ 1 mailbox\ 2
## Therefore these ideas I had were useless:
## * nmzmail -i "$INDEX"
## * INDEX+="\"$mailbox\" "
# -- suggestion for using an array to store any arguments (example below shifts
# positional parameters, storing them into an array)
#
for (( i=0 ; "$#" > 0; i++ )) ; do
s["$i"]="$1" && shift
done
printf "%s\n" "${s[@]}"