Чтобы добавить к Вороне @David, вот dependency:tree пример от сайта Знатока:
mvn dependency:tree -Dincludes=velocity:velocity
мог бы произвести
[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO] \- velocity:velocity:jar:1.4:compile
Я мало что знаю об интерфейсе командной строки MySQL, но, предполагая, что вам нужна только помощь с bash, вы должны попробовать поменять местами команды примерно так:
myvariable=$(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p$password)
строку в MySQL. Или вы можете проявить больше фантазии и использовать некоторые новые функции bash (строка здесь)
myvariable=$(mysql database -u $user -p$password<<<"SELECT A, B, C FROM table_a")
, что приведет к тому же (при условии, что вы используете достаточно свежую версию bash), без использования echo.
Обратите внимание, что -p $ password не является опечаткой, но MySQL ожидает, что пароли будут вводиться через командную строку (без пробелов между параметром и значением).
Обратите внимание, что myvariable будет содержать все, что MySQL выводит на стандартном выходе. (обычно все, кроме сообщений об ошибках), включая любые заголовки столбцов, фреймы ASCII-art и так далее, что может быть или не быть тем, что вам нужно.
РЕДАКТИРОВАТЬ:
Чтобы прочитать данные построчно в массив Bash, вы можете сделать это:
while read -a row
do
echo "..${row[0]}..${row[1]}..${row[2]}.."
done < <(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p $password)
Или в отдельные переменные:
while read a b c
do
echo "..${a}..${b}..${c}.."
done < <(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p $password)
Более прямой способ:
myvar=$(mysql mydatabase -u $user -p$password -se "SELECT a, b, c FROM table_a")
У вас есть канал наоборот, и вам нужно повторить запрос, например:
myvariable=$(echo "SELECT A, B, C FROM table_a" | mysql db -u $user -p $password)
Другой альтернативой является использование только клиента mysql, например
myvariable=$(mysql db -u $user -p $password -se "SELECT A, B, C FROM table_a")
( -s
требуется, чтобы избежать ASCII-арта)
Теперь BASH - не самый подходящий язык для обработки сценариев этого типа, особенно для обработки строк и разделения результатов SQL и т.п. Вы должны много работать, чтобы получить что-то, что было бы очень, очень просто на Perl, Python или PHP.
Например, как вы получите каждый из A, B и C по отдельной переменной? Это, конечно, выполнимо, но если вы не понимаете конвейеры и эхо (очень простые вещи оболочки), это будет непростая задача для вас, поэтому, если это вообще возможно, я бы использовал более подходящий язык.