Не уверен на 100%, что вы делаете, но предположу.
Файл.sql, в моем тестовом примере я назову егоtest.sql
:
select * from test1;
select * from test2;
select * from test3;
И скрипт для чтения и отображения этих данных sql:
#!/bin/sh
# Get the raw sql data
RAW=`cat test.sql`
# We want to split the raw sql on a line return.
IFS="
"
# Echo out each line? Not sure if this is what you want.
for sql in $RAW
do
echo "SQL line: [${sql}]"
done
exit
Это даст вам следующий результат:
SQL line: [select * from test1;]
SQL line: [select * from test2;]
SQL line: [select * from test3;]
Я думаю, что вам не хватает части IFS
. Изman sh
:
IFS Input Field Separators. This is normally set to ⟨space⟩,
⟨tab⟩, and ⟨newline⟩.