Мені потрібно запустити збережену процедуру за допомогою MySQL з bash. Збережена процедура повертає змінну, і мені потрібно перевірити значення змінної в 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.