2010-12-30 3 views
0

변수가 mysql 입력을 위해 파일에 쓰는 bash 메뉴가 있습니다. 가 heres는 내가 무엇을 : 나는 '$의 mysqlu'와 같은 인스턴스를 원하는BASH echo write mysql 입력

echo "CREATE DATABASE '$mysqldbn'; 

#GRANT ALL PRIVILEGES ON *.* TO '$mysqlu'@'$myhost' IDENTIFIED BY '$mysqlup' WITH GRANT OPTION; 

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'$myhost' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'$myip' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'localhost' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES< LOCK TABLES on '$mysqldbn'.* TO '$mysqlu'@'$rip' IDENTIFIED BY '$mysqlup';" > nmysql.db 


mysql -u root -p$mypass < nmysql.db 

문제는 작은 따옴표에 넣어했다 보여 변수를 얻을 수 있습니다, 작은 따옴표는 @ 'localhost를'표시됩니다. 하지만 따옴표를 제거하고 인스턴스의 변수를 사용하려면 어떻게해야합니까? CREATE DATABASE '$ mysqldbn'? 큰 따옴표는 작동하지 않을 것이다, 나는 손실에이다. 사전에

감사합니다, 조

답변

1

난 정말 여기에 문제가 표시되지 않습니다,하지만 당신은, bash는 것이라고 도움을 변수 이름을 인용 ${mysqldbn}를 사용할 수 있나요?

+0

감사합니다. 문제는 mysql이 CREATE DATABASE 'example'; – jmituzas

0

작은 따옴표를 생략 할 수 있어야합니다.

하지만 여기있는 문서를 사용하는 것이 좋습니다. 약 :

mysql -u root -p$mypass <<EOF 

CREATE DATABASE $mysqldbn; 

#GRANT ALL PRIVILEGES ON *.* TO '$mysqlu'@'$myhost' IDENTIFIED BY '$mysqlup' WITH GRANT OPTION; 

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'$myhost' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'$myip' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON '$mysqldbn'.* TO '$mysqlu'@'localhost' IDENTIFIED BY '$mysqlup'; 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES< LOCK TABLES on '$mysqldbn'.* TO '$mysqlu'@'$rip' IDENTIFIED BY '$mysqlup'; 
EOF 
0

는 지금까지 내가, 당신이 값을 표시 할 따옴표를 사용할 필요가 아는 한, 여기 내 예제 :

#!/bin/bash 
myvar="MyValue" 
echo "$myvar" 
echo '$myvar' 
echo '${myvar}' 

가 생성 :

MyValue 
$myvar 
${myvar} 

희망이

을하는 데 도움이