1

こんな感じでシェルスクリプトを作ったのですが、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}\";
   mysql -u root -p -e \"\${sql3}\";
 ";
'

データベースはリモート マシンで正常に作成されましたが、grant コマンドはエラーを返しました..! 私の推測では、grant コマンドで ${db_pass} の前後に \" 文字が使用されているためにエラーが発生している可能性があります。これを解決するのを手伝ってください。

ありがとう。

4

1 に答える 1

0

ネストされた引用は常に注意が必要です。sshとしてリモートホストにアクセスしてみませんrootか?

ssh -t root@10.3.2.0 '
  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}"
  mysql -p -e "${sql3}"
'
于 2013-03-07T15:20:32.200 に答える