-1

スクリプトを作成しましたが、次のエラーが発生し続けます。接続しようとしたときに、ユーザー'zul' @'localhost(password:yesを使用)のアクセスが拒否されました

プロジェクト:43:[d:見つかりません

プロジェクト:43:[d:見つかりません

入力dを読み取っていないし、MySQLに接続していません。何か案は?

これが私のスクリプトです:

#!/bin/bash

tstamp=$(date +$s) 

#Dump or Update
if [ -z "$1" ]; then
  echo -n "What do you want to do? [D]ump or [U]pdate: "
  read parm
else
  parm=$1
fi

#Database Name
if [ -z "$2" ]; then
  echo -n "What database are you using?"
  read dbname
else
  dbname=$2
fi

#Database User
if [ -z "$3" ]; then
  echo -n "What database user are you using?"
  read dbuser
else
  dbuser=$3
fi

#Database Password
if [ -z "$4" ]; then
     echo -n "What password are you using?"
     read dbpass
else
     dbpass=$4
fi


#Checks if the directory exists
if test ! -d "/home/zul/sql/backup"; then
  mkdir /home/zul/sql
  mkdir /home/zul/sql/backup
fi

mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$tstamp.$dbname.sql

if [$parm = d ]; then
  mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql
elif [$parm = u ]; then
  mysqldump $dbuser -p$dbpass $dbname < /home/zul/sql/backup/$dbname.sql
else
  echo " d or u option only! (lower case)"
fi
4

2 に答える 2

2


if- elseテストにスペースが不足している[ test ]と思います。[test ]

if [ $parm = d ]; then
  mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql
elif [ $parm = u ]; then
  mysqldump $dbuser -p$dbpass $dbname < /home/zul/sql/backup/$dbname.sql
else
于 2012-07-28T16:25:38.637 に答える
1

'['を引数から空白で区切る必要があります。

if [ $parm = d ]; then
    mysqldump $dbuser -p$dbpass $dbname > /home/zul/sql/backup/$dbname.sql
elif [ $parm = u ]; then
于 2012-07-28T16:27:04.467 に答える