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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Mary Jane Tauyan

    Mary Jane Ta

    20 AĞUSTOS 2009
  • Photoshop Training Channel

    Photoshop Tr

    13 Temmuz 2012