我有一个问题,我无法弄清楚自己,我有一个包含数据的SQLite数据库
检索数据我使用bash脚本和命令sqlite3 db "SELECT prkey FROM printers"
输出是这样的:
1
3
4
5
6
7
我需要解析每一行并将其用于我的下一个命令。并且不使用> file
尊重Marco
答案 0 :(得分:4)
for
循环有效,但它们不是很健壮:如果输出中的一行有空格,它们会中断,并且shell必须在查询开始运行循环之前将查询的整个输出存储在内存中。这两个问题很容易解决:
sqlite3 db "SELECT ..." | while read prkey; do
echo "do stuff with $prkey"
done
答案 1 :(得分:0)
#!/bin/bash
for line in $(sqlite3 db "SELECT prkey FROM printers"); do
echo "line is --> $line" # do stuff with $line
done
答案 2 :(得分:0)
您可以对sqlite命令的返回值使用for循环。
for prkey in `sqlite3 db "SELECT prkey FROM printers"`; do
echo $prkey; #replace with your command
done;