PDA

Visualizza la versione completa : probabile errore nelle stringhe in script bash


gianiaz
25-11-2008, 10:25
Ciao, sto usando questo script per fare il backup di un sito:



#!/bin/bash

# CONFIG #
USER_DB="user001"
PASSWORD_DB="pass001;"
DBNAME="nomedb"
DIR_BACKUP="/root/";
PROJECT_DIR="/srv/www/htdocs/workingprogress/001"


TODAY=`date +%Y-%m-%0e`;
SQLFILE=progetto${TODAY}.sql
GZIPFILE=progetto${TODAY}.tgz

CMD="mysqldump -u\"${USER_DB}\" -p\"${PASSWORD_DB}\" ${DBNAME} > ${PROJECT_DIR}${SQLFILE}";

echo $CMD
`$CMD`



La cosa che crea problemi Ŕ la password con il ; finale (che non posso cambiare).

In pratica come vedete dallo script do un echo del comando e ricevo:



mysqldump --user="user001" --password="pass001;" nomedb> /srv/www/htdocs/workinprogress/001/progetto2008-11-25.sql


Se copio e incollo nella shell questo comando funziona perfettamente, mentre se eseguito nello script ottengo:



mysqldump: Got error: 1045: Access denied for user '"user001"'@'localhost' (u
sing password: YES) when trying to connect


Siccome il comando da shell funziona, penso sia una problematica dello script, sapete darmi una mano?

Grazie, ciao

cacao74
25-11-2008, 10:54
utilizza gli apici singoli per la variabile relativa alla password e dovresti risolvere...
ovvero


PASSWORD_DB='pass001;'


ciao

gianiaz
25-11-2008, 11:04
grazie per la risposta, ma purtroppo ottengo lo stesso errore :(

cacao74
25-11-2008, 11:41
Originariamente inviato da gianiaz
grazie per la risposta, ma purtroppo ottengo lo stesso errore :(
proteggi il punto e virgola con un backslack, mantenento pero' il doppio quote:


PASSWORD_DB="pass001\;"


:-)

gianiaz
25-11-2008, 11:52
purtroppo avevo giÓ provato, stesso errore.

Loading