Hoihoi
Ik ben momenteel met BASH wat scriptjes aan het schrijven om een psql DB te benaderen.
Hiervoor heb ik een functie queryDB, die zijn parameter (een SQL statement) naar de DB stuurt en het resultaat teruggeeft na wat head en tail werk.
Een willekeurig (heel lastig
) statement.
Mijn functie:
Echter krijg ik het niet goed qua quotes als ik die functie wil gebruiken. De query an sich is trouwens prima, die werkt gewoon.
Als ik de query single-quote, dan krijg ik dit als output:
Double-quoten werkt ook niet.
On the other hand, dit werkt wel:
Kan iemand me vertellen wat ik fout doe? Uiteraard heb ik al RTFM gedaan (niet goed genoeg dus!), en trial-and-error.
Ik ben momenteel met BASH wat scriptjes aan het schrijven om een psql DB te benaderen.
Hiervoor heb ik een functie queryDB, die zijn parameter (een SQL statement) naar de DB stuurt en het resultaat teruggeeft na wat head en tail werk.
code:
1
| queryDB 'SELECT "LineName" FROM "Line" limit 10;' |
Een willekeurig (heel lastig
Mijn functie:
code:
1
2
3
4
5
6
7
8
9
10
| function queryDB ()
{
QUERY=$1
print $1
RESULT=echo $QUERY | psql -U $USERNAME $DBNAME
# Hier komt wat bewerking....
return $RESULT
} |
Echter krijg ik het niet goed qua quotes als ik die functie wil gebruiken. De query an sich is trouwens prima, die werkt gewoon.
Als ik de query single-quote, dan krijg ik dit als output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| boudewijn@fiberdb:~$ sh plaintextFiberDump.sh Warning: unknown mime-type for "SELECT" -- using "application/octet-stream" Warning: unknown mime-type for ""LineName"" -- using "application/octet-stream" Warning: unknown mime-type for "FROM" -- using "application/octet-stream" Warning: unknown mime-type for ""Line"" -- using "application/octet-stream" Warning: unknown mime-type for "limit" -- using "application/octet-stream" Warning: unknown mime-type for "10;" -- using "application/octet-stream" Error: no such file "SELECT" Error: no such file ""LineName"" Error: no such file "FROM" Error: no such file ""Line"" Error: no such file "limit" Error: no such file "10;" |
Double-quoten werkt ook niet.
On the other hand, dit werkt wel:
code:
Een single quote zou dus prima moeten zijn, waardoor ik concludeer dat het probleem zit rond het als parameter meesturen van die query.1
| LINE_INFO= echo 'SELECT "LineName" from "Line" where "LineName"=$LINENAME ;' | psql -U $USERNAME $DBNAME |
Kan iemand me vertellen wat ik fout doe? Uiteraard heb ik al RTFM gedaan (niet goed genoeg dus!), en trial-and-error.