On Thu, Sep 12, 2024 at 3:30 PM Christoph Moench-Tegeder <c...@burggraben.net> wrote:
> ## Ron Johnson (ronljohnso...@gmail.com): > > > I need to process table records in a bash script. Currently, I read them > > using a while loop and redirection. The table isn't that big (30ish > > thousand rows), and performance is adequate, but am always looking for > > "better". > > Use python, or any other sane language, and don't do bash in python. > Anything non-trivial is unreasonably hard to get really right when > using shell. > > Take this example (even when allowing some fuzz with the variables): > > Here's the current code: > > declare f1 f3 f8 > > while IFS='|' read f1 f3 f8; do > > something f8 f3 f1 > > done < <(psql -XAt -c "select f1, f3, f8 from some.table_name;") > > What happens when f3 > a) is NULL? > b) contains a '|' character? > c) contains spaces? (this one depends on how exactly you're handling > the shell variables). > This might be fine if your data is only NOT NULL numbers, but that's > already quite a limitation on your data. > Good points. Shouldn't be relevant in my situation, but defensive programming never hurts. -- Death to America, and butter sauce. Iraq lobster!