Рейтинг:0

Mysql в скрипте bash

флаг in

Привет, я запускаю следующий запрос mysql, используя скрипт bash:

#!/бин/баш

set -f # отключить подстановку
IFS=$'\n' # установить разделитель полей в NL (только)

arr=($(sudo mysql -u root -h localhost -e "ИСПОЛЬЗОВАТЬ mydb; ВЫБЕРИТЕ * ИЗ сайтов" | awk 'NR>1'))

эхо $ обр

который возвращает следующее:

1 Джон Ричардс [email protected]

Затем я пытаюсь получить только имя (Джон) и сохранить его в переменной, я добавляю эту строку:

имя = $ обр | awk '{напечатать $2}'

Однако я делаю что-то не так, потому что тогда я пытаюсь напечатать результат со следующей строкой:

эхо $имя

Который ничего не печатает. Что я здесь делаю неправильно?

флаг in
Глупый вопрос, но почему бы не написать SQL-запрос получше? Если все, что вам нужно, это значение `firstname`, тогда `SELECT firstname FROM site` предоставит это значение.
jpbrain avatar
флаг ca
что, если вы просто сделаете «echo ${arr[1]}»?
Terrance avatar
флаг id
Ваша команда имени неверна. Вместо этого вам нужно будет использовать его как эхо, как в вашей команде `echo $firstname`. Это должно быть `firstname=$(echo $arr | awk '{print $2}')`
Iosef avatar
флаг in
matigo: Я не могу этого сделать, потому что мне нужно, чтобы другие столбцы также хранились в переменных. jpbrain: Я не получаю то, что мне нужно. Терренс: Ты дал правильный ответ.
Рейтинг:0
флаг id
имя = $ обр | awk '{напечатать $2}'

на самом деле пытается установить имя к команде чего $ обр установлен для поэтому он должен ошибаться с команда не найдена.

если ты эхо $ обр как полную команду, вы можете получить позиционный параметр по мере необходимости.

имя=$(echo $arr | awk '{print $2}')

Есть и другие способы получить позиционные параметры. Не стесняйтесь искать их.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.