SORU
5 Ocak 2010, Salı


Nasıl bir bash komut tırnak işaretleri içeren bir dize olarak depolanan yürütmek ve yıldız

Aşağıdaki komutu çalıştırmak için çalışıyorum :

mysql AMORE -u username -ppassword -h localhost -e "SELECT  host  FROM amoreconfig"

Bir dize içinde saklayın :

cmd="mysql AMORE -u username -ppassword -h localhost -e\"SELECT  host  FROM amoreconfig\""

Test :

echo $cmd
mysql AMORE -u username -ppassword -h localhost -e"SELECT host FROM amoreconfig"

Yaparak yürütmek için deneyin :

$cmd

Ve mysql yardım sayfa :

mysql  Ver 14.14 Distrib 5.1.31, for pc-linux-gnu (i686) using readline 5.1
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Usage: mysql [OPTIONS] [database]
(...)

Tırnak işaretleri ile bir şeyler tamamen yanlış yapıyorum sanırım ama sorunun ne olduğunu öğrenemez.

CEVAP
5 Ocak 2010, Salı


Denedin:

eval $cmd

Çift tırnaklı dizeleri çıplak olduğunda özel bir anlamı olduğu için * kaçış nasıl ya izleyin-soru: tek tırnak kullanın.

MYSQL='mysql AMORE -u username -ppassword -h localhost -e'
QUERY="SELECT "'*'" FROM amoreconfig" ;# <-- "double"'single'"double"
eval $MYSQL "'$QUERY'"

Bonus: Bu da güzel okur:; - eval mysql sorgu)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • boburnham

    boburnham

    11 Temmuz 2006
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006