for in v bashi má jako výchozí oddělovač i mezery, musíš ho nastavit pouze na zalomení řádku. Tj.
OPTIONS=`cat $SOURCE_LIST | awk -F";" 'NR>1 {print $1":"$2":"$3}'`
X=0
IFS=$'\n'
for LINES in $OPTIONS
do
X=$((X+1))
CHOICE[$X]=`echo $LINES`
echo $X "=" ${CHOICE[${X}]}
done
X=0
Pokud ale chceš vybrat ze souboru konkrétní řádek, je na to lepší třeba sed a rovnou můžeš jen ten jeden řádek prohnat awk. S tím NF nevím co děláš
sed -n $((X+1)),$((X+1))p $SOURCE_LIST | awk -F";" '{print $1":"$2":"$3}'
Případně to celé můžeš rovnou napsat v awk
X=0
cat $SOURCE_LIST | awk -v X="$X" -F";" 'NR == X+1 {print X+1" = "$1":"$2":"$3}'
Je ale otázka co řešíš, nejspíš to lze udělat daleko čištěji a stabilněji, stačí když sem popíšeš celý problém a nebudeš to kouskovat
