0

シェルスクリプトの問題で立ち往生しています。

シェルスクリプトの次の行のように、何らかの理由で\二重引用符の前にすでに文字を使用しています。(")

sql2=\"\${db_name}.* のすべてを \${dbpass} で識別される \${db_user}@\${host} に付与;\";

\${dbpass}しかし、MySQL の "grant" コマンド構文のように、上記のシェル スクリプト行の一部である の前後に二重引用符を付ける必要があります。このようにする\"\${dbpass}\"と、実行中に構文エラーがスローされます。これを解決する必要がありますか。

これは更新です。
これが実行したいシェルスクリプトです。

ssh -t qbadmin@10.3.2.0 '
su root -c "
echo \"Give db name :\";
read db_name;
echo \"Give password :\";
read db_pass;
host=localhost;
sql1=\"create database \ $db_name;\";
sql2=\"\"\${db_pass}\" で識別される \${db_name}@\${host} に \${db_name}.* のすべてを付与;\";
sql3=\ "\${sql1}\${sql2}\";
echo \"==============\";
mysql -u root -p -e \"\${sql3}\ ";
";
'

このスクリプトを参照して、これに必要な変更をお知らせください。

ありがとう。

4

1 に答える 1

0

これを試して

db_name="yourdbname"
db_user="yourdbuser"
host="yourhost"
dbpass="yourdbpass"

sql2="grant all on ${db_name}.* to ${db_user}@${host} identified by ${dbpass};"

echo $sql2 | mysql -u yourusername -pmysql
于 2013-03-06T13:43:39.840 に答える