Разбор запроса sqlite построчно - PullRequest
2 голосов
/ 07 апреля 2011

У меня есть проблема, которую я не могу понять сам, у меня есть база данных SQLite, которая содержит данные для извлечения данных я использую скрипт bash и команду sqlite3 db "SELECT prkey FROM printers"

вывод выглядит примерно так:

1

3

4

5

6

7

Мне нужно проанализировать каждую строку и использовать ее для моей следующей команды. и без использования > file

привет Марко

Ответы [ 3 ]

4 голосов
/ 11 апреля 2011

Циклы for работают, но они не очень устойчивы: они ломаются, если в строке выходных данных есть пробел, и оболочка должна сохранить весь вывод запроса в памяти до того, как запустит цикл. Эти две проблемы легко решаются:

sqlite3 db "SELECT ..." | while read prkey; do
   echo "do stuff with $prkey"
done
0 голосов
/ 07 апреля 2011

Вы можете использовать цикл for для возвращаемого значения команды sqlite.

for prkey in `sqlite3 db "SELECT prkey FROM printers"`; do
    echo $prkey; #replace with your command
done;
0 голосов
/ 07 апреля 2011
#!/bin/bash

for line in $(sqlite3 db "SELECT prkey FROM printers"); do
  echo "line is --> $line" # do stuff with $line
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...