espansione di supressione di * in eco

Sto lavorando su uno script che eseguisce dynamicmente alcune query su base giornaliera. Queste query vengono da una tabella nel database.

Ecco l'output di esempio della tabella di query:

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

Ora, devo eseguire la query select * from users LIMIT 10; in modo dinamico. Sto leggendo each row dell'output e memorizzando la query dall'output.

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

Ora ecco where si presenta il problema. Poiché la mia linea contiene un carattere * in esso, echo $query espande il * per sostituirlo con i file nella directory corrente. Quindi fondamentalmente, la mia query_sql memorizza qualcosa di simile.

 select batchemail.sh query_output.txt from tbl_query 

Voglio conservare la * nella row in modo che ottengo lo stesso nella mia variabile query_sql . Voglio che la mia variabile query_sql memorizzi i dati originali.

 select * from tbl_query 

Qualcuno mi può guidare su questo?

  • Nessuna applicazione di shell e di avvio per l'accesso
  • Errore "Elenco di argomenti troppo lungo" durante la copia di un gran numero di file
  • Come codificare il parametro password rdesktop in uno script di shell?
  • sudo e sudo -i caratteristiche di accesso
  • Confrontare la directory di Unix Linux
  • Come faccio a prevenire la sostituzione di bash?
  • C'è un modo semplice per inserire i dati e l'ora davanti a un file di registro con solo script di shell?
  • Modifica del PATH in PASE
  • 2 Solutions collect form web for “espansione di supressione di * in eco”

    Lo si distriggers aggiungendo la seguente row nello script:

     set -o noglob 

    Come esempio,

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

    Puoi metterlo in "":

     $ 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; 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.