Bom Dia! Obrigado Pedro, a mim interessou sim.
Abs! Fica com Deus! Pedro Robson Leao escreveu: > > > :::::::::::::: > include/mysql.sh > :::::::::::::: > #!/bin/bash > > # MySQL shell library > # Pedro Robson Leao - 2009/04/19 > # [email protected] <mailto:pedro.leao%40gmail.com> > > _DB_ERROR=""; > _DB_ERROR_CODE=0; > > _DB_RS_NEXT=1; > _DB_RS_COUNT=0; > > function mysql_connect() { > local user=${1:-"root"}; > local passwd=${2}; > local db=${3:-"mysql"}; > local host=${4:-"localhost"}; > > _DB_USER="${user}"; > _DB_PWD="${passwd}"; > _DB_HOST="${host}"; > _DB="${db}"; > } > > function mysql_error() { > #ERROR 1046 (3D000) at line 1: No database selected > local error=$( echo ${1} | tr '£' ' ' ); > if echo "${error}" | egrep -q "^ERROR [0-9]+ \([A-Za-z0-9]+\)" ; then > _DB_ERROR_CODE=$( echo ${error} | cut -d " " -f 2 ); > _DB_ERROR=$( echo ${error} | cut -d : -f 2- ); > else > false; > fi > } > > function mysql_haserror() { > [ ${_DB_ERROR_CODE} -ne 0 ] && true || false; > } > > function mysql_geterror() { > echo "${_DB_ERROR}"; > } > > function mysql_geterrno() { > echo "${_DB_ERROR_CODE}"; > } > > function mysql_execute() { > local line; > local ct=0; > > while read line ; do > if [ ${ct} -eq 0 ] ; then > if mysql_error "${line}" ; then > #IFS=$OLDFS; > return; > else > _DB_COLUNS_NAME=( ${line} ); > fi > else > _DB_RS[${ct}]="${line}"; > fi > ct=$((ct+1)); > done < <( mysql -u"${_DB_USER}" -p"${_DB_PWD}" -h"${_DB_HOST}" > "${_DB}" -e "${1}" 2>&1 | tr ' ' '£' ); > #done < <( mysql -u"${_DB_USER}" -p"${_DB_PWD}" -h"${_DB_HOST}" > "${_DB}" -e "${1}" 2>&1 | sed s/'\t'/\"'\t'\"/g | sed s/$/\"/g | sed > s/^/\"/g ); > _DB_RS[${ct}]=; > _DB_RS_COUNT=${ct}; > } > > function mysql_count() { > echo "${_DB_RS_COUNT}"; > } > > function mysql_getfirst() { > _DB_RS_NEXT=1; > echo $( mysql_getnext ); > } > > function mysql_getnext() { > _DB_RS_NEXT=$((_DB_RS_NEXT+1)); > } > > function mysql_hasnext() { > [ ${_DB_RS_COUNT} -le $((_DB_RS_NEXT+1)) ] && return 1 || return 0; > } > > function mysql_line() { > echo ${_DB_RS_NEXT}; > } > > function mysql_getfield() { > local size=${#_db_coluns_na...@]}; > local VCT=( ${_DB_RS[${_DB_RS_NEXT}]} ); > > if echo ${1} | egrep -q "^[0-9]+$" ; then > # pesquisa por numero do campo > > [ ${1} -le ${size} ] && { > echo ${VCT[${1}]} | tr '£' ' '; > } > else > # pesquisa por nome do campo > > local i; > > for ((i=0;i<size;i++)) ; do > if [ "${1}" == "${_DB_COLUNS_NAME[$i]}" ] ; then > break; > fi > done > > echo ${VCT[$i]} | tr '£' ' '; > fi > } > :::::::::::::: > mysql_sample.sh > :::::::::::::: > #!/bin/bash > > source include/mysql.sh > > #sample > > mysql_connect root Germany information_schema; > > mysql_execute "SELECT * FROM TABLES"; > > mysql_haserror && { > echo "$( mysql_geterrno ): $( mysql_geterror )"; > exit; > } > > mysql_getfirst; > > echo "$(mysql_line) : $( mysql_getfield 0 )|$( mysql_getfield 1 )|$( > mysql_getfield 2)|$( mysql_getfield 3)|$( mysql_getfield 4)|$( > mysql_getfield 5)"; > > while mysql_hasnext ; do > mysql_getnext; > echo "$(mysql_line) : $( mysql_getfield TABLE_SCHEMA )|$( > mysql_getfield ENGINE )|$( mysql_getfield TABLE_NAME )"; > done > >
