Supposons que j'ai créé une séquence en postgresql:
CREATE SEQUENCE my_seq;
Je stocke la ligne ci-dessous dans un fichier sql get_seq.sql
SELECT last_value FROM my_seq;
$Sudo psql -q -d database_bame -f get_seq.sql
Comment puis-je obtenir le numéro int retourné par SELECT dans bash et l'utiliser?
Vous pouvez capturer le résultat d'une commande en utilisant la syntaxe VAR = $ (commande):
VALUE=$(psql -qtAX -d database_name -f get_seq.sql)
echo $VALUE
Les options psql requises signifient:
-t
uniquement Tuple
-A
sortie non désalignée
-q
silencieux
-X
Ne pas exécuter le fichier .psqlrc
Essayer:
LAST_VALUE=`echo "SELECT last_value FROM my_seq;" | psql -qAt -d database_bame`
Vous pouvez utiliser le $?
variable dans Bash, ie. exécutez le psql
, lisez sa valeur de retour à partir de la variable intégrée $?
et agissez en conséquence:
#!/bin/bash
psql -q -d database_bame -f get_seq.sql # >/dev/null we are only interested in return value
exit_value=$? # or you could just echo $? right after the psql
echo $exit_value # but storing it to $exit_value lasts longer
Les sorties:
0