bash에서 MySQL을 사용하여 저장 프로 시저를 실행해야합니다. 저장 프로 시저는 변수를 반환하며 bash에서 변수 값을 확인하여 변수를 표시해야합니다. 변수를 직접 반향하면 값이 올바르게 표시되지만을 사용하여 값을 확인 if하면 if조건이 충족되지 않으며 다음과 같은 경우 '예'가 표시되지 않습니다.
일을 단순화하기 위해 다음과 같이 bash 파일을 단순화했습니다.
result=$(mysql -h localhost -u$MYSQL_USER -p$MYSQL_PASSWORD -s -e "set @myVarible = 'YES';select @myVarible" $MYSQL_DATABASE)
if [[ $result == 'YES' ]] ; then
echo YES
fi
의 출력 echo -n "$result" | od -ctx1은
0000000 Y E S \r
59 45 53 0d
0000004
result=$(mysql …)명령이 작동, 및 echo $result출력 YES하지만, if … fi명령은 아무것도 출력하지 않습니다? 합니까 echo $result출력 YES또는 'YES'? $result큰 따옴표 를 넣으면 어떻게됩니까 (예 :) echo "$result"?
if [[ $result =~ YES ]] ; then
echo -n "$result" | hexdump -C.
;이전을 추가하십시오fi.