0

このようなシェル スクリプトを作成しましたが、grant コマンドで構文エラーが発生します。誰か助けてください。

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=\"grant all on \${db_name}.* to \${db_name}@\${host} identified by \"\${db_pass}\";\";
   sql3=\"\${sql1}\${sql2}\";
   echo \"==============\";
   mysql -u root -p -e \"\${sql3}\";
 ";
'
4

1 に答える 1

0

解決策を見つけました。

grantコマンドに"\\\""前後を入れることで解決しました。\${db_pass}grant コマンドは、構文エラーなしでうまく機能しました。

ご支援いただきありがとうございます。

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=\"grant all on \${db_name}.* to \${db_name}@\${host} identified by "\\\""\${db_pass}"\\\"";\";
   sql3=\"\${sql1}\${sql2}\";
   echo \"==============\";
   mysql -u root -p -e \"\${sql3}\";
 ";
'
于 2013-03-08T03:17:38.050 に答える