2012-01-18 3 views
0

저는 bash 스크립팅이 처음이므로 도움이 필요합니다. MySQL 데이터베이스에서 데이터를 가져오고 http 호출에 매개 변수를 사용하려고합니다. 예를 들어,Bash - http 호출을 위해 mysql에서 데이터를 검색하십시오.

$string = data from mysql 

http://www.company.com/organizer/$string 

mysql에서 데이터를 검색하고 문자열로 저장 한 다음 http 호출에 사용하려면 어떻게합니까? 브라우저에서 사용하는 것처럼 http url을 실행해야합니다. 당신은 어떻게 다음에 대한 $()

#!/bin/bash 

string=$(mysql ...) 
echo "http://www.company.com/organizer/$string" 

답변

1

를 통해 명령 치환를 사용하려면

#!bin/bash 
$string = mysql Company<<EOFMYSQL 
select name from HR; 
EOFMYSQL 
+0

두 가지 문제점이 있습니다. 첫 번째는'string'은 말 그대로 *'mysql -uusername -ppassword dbname -e 'select * from foo;'\''와 같을 것입니다. 따옴표를 제거하면 예상 한대로 처리됩니다. 즉, 명령의 * 출력 *이'string'으로 설정됩니다. 다른 문제는 backticks''를 사용하는 것이 더 이상 사용되지 않는다는 것입니다. 대신'$()'을 사용하십시오. – SiegeX

+0

덕분에, 아마도 여기서는 이전 버전과의 호환성을 위해 작동합니다. 그 mysql 명령은 OP가 주어진 명령문을 기반으로하는 가장 좋은 추측이지만 원인에 따라 나중에 OP로 대체 할 일반적인 아이디어를 제공합니다. – Jasonw

+0

예, 글자를 쓰는 백틱 주위를 인용 할 때 잘못된 것처럼 보입니다. 그러나, 그들은 * 외계인입니다. – SiegeX

1

:로

나의 현재 코드

은?

string="`mysql -uusername -ppassword dbname -e 'select * from foo;'`" 
url="http://www.company.com/organizer" 
url="$url/$string"; 
wget "$url" 
관련 문제