2017-04-05 1 views
0

mysql 데이터베이스에 학생이라는 테이블이 있습니다. 이 테이블의 이름은 입니다.쉘을 사용하여 mysql에서 열 값을 하나씩 가져옵니다.

나는 PID에 의해 식별 특정 학생에게 이메일을 보내려면 다음 명령을 사용하여

$email=$(mysql --login-path=local --database=ccps -ss -e "select email from student where pid=132054"); 
echo "This is sample mail" | mail -s "Test" $email 

내가 각각의 데이터베이스에있는 모든 학생들에게 이메일을 보내는 방법을 알고 싶어요. 열에서 루프를 사용하는 방법을 모르므로 전자 메일.

감사합니다.

+0

이렇게 메일을 사용하는 것은 극히 추악한 방법입니다. 전체 전자 메일 메시지를 작성할 수있는 스크립팅 언어를 사용해야합니다. 테스트 중이라면 트릭은'xargs '입니다. – tadman

답변

0

가장 직접적인 방법은 다음과 같습니다

for email in `mysql --login-path=local --database=ccps -ss -e "select email from student order by pid;"` 
do 
     echo "This is sample mail" | mail -s "Test" $email 
done 

당신이 전에 그들을 건너하지 않은 경우, 단지 MySQL의 이전과 명령의 끝에 따옴표가 왼쪽입니다 보통 따옴표가 아닌 수작업입니다. 앞서 언급 한 바와 같이 PHP와 같은 기능은보다 정교한 전자 메일을 작성하는 데있어 더 좋고/더 쉬울 것입니다.

+0

고마워요. 그 매력처럼 작동 :) – Liston

1

놀기를 원한다면, 이와 같이하면 효과가 있습니다. 그러나 이것을하는 훨씬 더 좋은 방법이 있습니다. 내가 생각할 수있는

read -ra student_emails <<< $(mysql --login-path=local --database=ccps -ss \ 
            -e "select email from student order by pid;") 
for email in ${student_emails[@]} 
do 
    echo "This is sample mail" | mail -s "Test" ${email[0]} 
done 
+0

정말 고마워요. – Liston

관련 문제