Olá pessoal,
Esse é um problema constante que tenho quando estou programando em bash para automatizar alguma tarefa, ler algum log, etc.
Quando faço um for dando um cat em um arquivo texto, dependendo do arquivo ele não interpreta que desejo ler linha a linha, pois utiliza o espço em branco como separador.
Para resolver, veja um exemplo abaixo:
#!/bin/bash
ORI_IFS=$IFS
IFS=$’\n’
for LINHA in $(cat /tmp/comandos.txt); do
# seus comandos aqui
echo $LINHA
done
IFS=$ORI_IFS