Edited*
I have the following definitions in my bash script:
DATE_SUFIX=$(date +%F_%H-%M-%S)
NAME="MyBackup_"
FILE_NAME=$NAME$DATE_SUFIX
TMP_DIR="/tmp/"
TMP_BKP=$TMP_DIR$NOME_ARQ"/"
TAR_CMD="tar czPf "
and I create a dir list like this:
FOLDER_LIST[0]="/opt"
FOLDER_LIST[1]="/etc/apache2/sites-available"
FOLDER_LIST[2]="/home/user"
Then I iterate this list with this loop:
mkdir $TMP_BKP
for ix in ${!FOLDER_LIST[*]}
do
CMD=$TAR_CMD$TMP_BKP$(basename ${FOLDER_LIST[$ix]})".tar.gz "${FOLDER_LIST[$ix]}"/* "$EXCLUDE
echo $CMD
done
I also have some code to generate the $EXCLUDE part. I does it the same way.
But the relevant part of code for this question is that "${FOLDER_LIST[$ix]}"/*
part in CMD expands to:
"/home/user/mybackupfolder/foo /home/user/mybackupfolder/bar ..."
the problem is that one of the expanded sub-folders has spaces in it, generating:
"/home/user/mybackupfolder/foo /home/user/mybackupfolder/bar /home/user/mybackupfolder/my spaced dir"
and that breaks the following operations. How can I make it expand to this? -
"'/home/user/mybackupfolder/foo' '/home/user/mybackupfolder/bar' '/home/user/mybackupfolder/my spaced dir'"
foo
andbar
in your list?