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

  • chrmoe

    chrmoe

    7 Kasım 2006
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • Howcast

    Howcast

    4 EKİM 2007