2016-04-14 21 views
0

Ben bu komutla sorun yaşıyorsanız tutmak:Bash Senaryo SSH ve içinde tire ile veritabanı oluşturmak o

ssh -t [email protected]$SSSSH "echo \"CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO '$SSMYSQLUSER'@'$SSMYSQLSERVER';\" | /usr/bin/mysql -u$SSMYSQLUSER -p$SSMYSQLPWD ;" 

bir - veritabanı adı mevcut olduğunda ben veritabanı oluşturma başarısız komutu ters tırnak kaçmış Tho bile . Sözdizimi nasıl düzeltebilirim?

bu yerel olarak her şeyi çalıştırırken çalışır:

echo "CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO '$MYSQLUSER'@'localhost';" | /Applications/MAMP/Library/bin/mysql -u"$MYSQLUSER" -p"$MYSQLPWD" 

Teşekkür

+0

Muhtemelen yine komutu ters tırnak * kaçmak gerekir *. Kabuk, çift tırnaklı dizgeyi ayırdığı zaman ilk kaçış kümesini soyuyor olabilir. Bu veya dışarıda tek tırnak işaretleri kullanın. Uzak komut dizesine 'set -x' ekle ve hangi komutun çalıştırıldığını görmelisiniz. –

+0

teşekkürler Tavsiyene aldı ve bu yardım: ssh -t $ SSSSHUSER @ $ SSSSH "echo 'create database \' $ NEWDB \ '; VERİLMESİ TÜM AÇIK \' $ NEWDB \ '* $ SSMYSQLUSER @ $ SSMYSQLSERVER İÇİN;' |/usr/bin/mysql -u $ SSMYSQLUSER -p $ SSMYSQLPWD; " –

cevap

0

Bu bir set -x ile ayıklama sonra çalıştı:

ssh -t [email protected]$SSSSH "echo 'CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO [email protected]$SSMYSQLSERVER;' | /usr/bin/mysql -u$SSMYSQLUSER -p$SSMYSQLPWD ; "