Você não precisa exportar todas as variáveis, apenas faça isso se estiver gerando um processo externo que precise encontrar suas variáveis em seu ambiente.
o bash usa colchetes para avaliar expressões de teste e parênteses redondos para avaliar expressões aritméticas:
while (( i < b ))
do
file=$(cut -f$i -d' ' <<< "$a")
echo $file
(( i += 1 ))
done
Além disso, você não precisa continuar chamando cut
, você pode armazenar as palavras "$ a" em uma matriz:
words=( $a ) # the variable is specifically *not* quoted here
for file in "${words[@]}"; do
do_something_with $file
done