# \[BASH\] soucis de quote/double quote

**URL:** <https://www.debian-fr.org/t/bash-soucis-de-quote-double-quote/53379>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/bash-soucis-de-quote-double-quote/53379 "2016-02-21T12:14:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cycykewl](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/b9bd4f/32.png) [@cycykewl](https://www.debian-fr.org/u/cycykewl)\
**Post date:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/bash-soucis-de-quote-double-quote/53379/1 "2016-02-21T12:14:38Z")

</div>

Hello,

je me prend tout le temps la tête sur l’utilisation des quotes / double quote au sein de script bash …  
Voici le cas ici.

J’ai une fonction :

`function retry {
   nTrys=0
   maxTrys=3
   status=256
   until [$status == 0] ; do
      $*
      status=$?
      nTrys=$(($nTrys + 1))
      if [$nTrys -gt $maxTrys] ; then
            echo "Number of re-trys exceeded. Exit code: $status"
            exit $status
      fi
      if [$status != 0] ; then
            echo "Failed (exit code $status)... retry $nTrys"
            sleep 60
      fi
   done
}`

Mon bout de code :

```auto

```

Le but est donc d’utiliser la fonction retry dans l’utilisation de la commande psql …

Comment feriez-vous ?

[code]PostgresDBpresent=`retry psql -t -h $REMOTE_HOST -U $PG_USER -d postgres -c "select datname from pg_database where (datname LIKE 'postgres')" 2>> $SCRIPT_LOG_FILE"`

psql: warning: extra command-line argument “datname” ignored  
psql: warning: extra command-line argument “from” ignored  
psql: warning: extra command-line argument “pg\_database” ignored  
psql: warning: extra command-line argument “where” ignored  
psql: warning: extra command-line argument “(datname” ignored  
psql: warning: extra command-line argument “LIKE” ignored  
psql: warning: extra command-line argument “‘postgres’)” ignored  
ERROR: syntax error at end of input  
LINE 1: select  
^  
^Cpsql: warning: extra command-line argument “datname” ignored  
psql: warning: extra command-line argument “from” ignored  
psql: warning: extra command-line argument “pg\_database” ignored  
psql: warning: extra command-line argument “where” ignored  
psql: warning: extra command-line argument “(datname” ignored  
psql: warning: extra command-line argument “LIKE” ignored  
psql: warning: extra command-line argument “‘postgres’)” ignored  
ERROR: syntax error at end of input  
LINE 1: select  
^  
^Cpsql: warning: extra command-line argument “datname” ignored  
psql: warning: extra command-line argument “from” ignored  
psql: warning: extra command-line argument “pg\_database” ignored  
psql: warning: extra command-line argument “where” ignored  
psql: warning: extra command-line argument “(datname” ignored  
psql: warning: extra command-line argument “LIKE” ignored  
psql: warning: extra command-line argument “‘postgres’)” ignored  
ERROR: syntax error at end of input  
LINE 1: select  
^  
^Cpsql: warning: extra command-line argument “datname” ignored  
psql: warning: extra command-line argument “from” ignored  
psql: warning: extra command-line argument “pg\_database” ignored  
psql: warning: extra command-line argument “where” ignored  
psql: warning: extra command-line argument “(datname” ignored  
psql: warning: extra command-line argument “LIKE” ignored  
psql: warning: extra command-line argument “‘postgres’)” ignored  
ERROR: syntax error at end of input  
LINE 1: select  
^

[/code]

---

<div class="post-metadata">

**Author:** ![cycykewl](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/b9bd4f/32.png) [@cycykewl](https://www.debian-fr.org/u/cycykewl)\
**Post date:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/bash-soucis-de-quote-double-quote/53379/2 "2016-02-21T12:14:45Z")

</div>

Bon me suis débrouillé avec ça :

```auto
Req="psql -t -h $REMOTE_HOST -U $PG_USER -d postgres -c \"select datname from pg_database where (datname LIKE 'postgres')\" 2>> $SCRIPT_LOG_FILE"
PostgresDBpresent=`retry eval "$Req"`
```

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/bash-soucis-de-quote-double-quote/53379/3 "2016-02-21T12:14:46Z")

</div>

salut,

ton intention est bien de savoir si le serveur sql est joignable, c’est ça?  
bah, moi, je me serais servi de nc`until nc -z $server $portPsql; do sleep 60; done`  
sans nc, en envoyant la requête sql quand même`until psql ... || [$((essais++)) -eq 3]
do sleep 60
done`  
la fonction retry doit-elle servir pour d’autres commandes?
