Supprimer l'expansion * en écho

Je travaille sur un script qui effectue quotidiennement certaines demandes. Ces demandes proviennent de la table dans la base de données.

Voici un exemple de la sortie de la table de requête:

+---------------+-------------------------------+---------+
| query_name | query | userid |
+---------------+-------------------------------+---------+
| All_User | select * from users LIMIT 10; | jmatthe |
+---------------+-------------------------------+---------+

Maintenant, j'ai besoin d'exécuter la demande

select * from users LIMIT 10;

Dynamiquement. J'ai lu chaque chaîne de sortie et conserve une demande de la sortie.

query_name=$(echo $query | cut -d\| -f1)
query_sql=$(echo $query | cut -d\| -f2)
query_user=$(echo $query | cut -d\| -f3)

C'est là que le problème se pose. Puisque ma chaîne contient

*

Personnage dedans,

echo $query

Se développe

*

Pour la remplacer par des fichiers dans le répertoire actuel. Donc fondamentalement mon

query_sql

Stocke quelque chose comme ça.

select batchemail.sh query_output.txt from tbl_query

Je veux économiser

*

dans la ligne, donc je reçois la même chose dans mon

query_sql

variable. Je veux le mien

query_sql

La variable de stockage pour les données source.

select * from tbl_query

Quelqu'un peut-il m'aider dans cela?
Invité:

Gaetan

Confirmation de:

Vous le désactivez en ajoutant la ligne suivante à votre script:

set -o noglob

Par exemple,

echo *
your files and folders are shown here..
set -o noglob
echo *
*

Darius

Confirmation de:

Vous pouvez le mettre dans "":

$ ls
file1 file2 file3 file4 file5 file6 file7 file8 file9
$ Q='select * from table;'
$ echo $Q
select file1 file2 file3 file4 file5 file6 file7 file8 file9 from table;
$ echo "$Q"
select * from table;

Pour répondre aux questions, connectez-vous ou registre