diego2k
diego2k

Reputation: 603

MySQL error in Bash

i'm trying to load some tables to mysql into a bash script so i have the followin code

DOMY="$MYSQL --user=xxxxx --password=xxxxx --database=$DBNAME"

for filename in $(cat $HPATH/toload.tables)
do

    $DOMY < $filename 2>/dev/null

    if [ $? -ne 0 ]
    then
        echo "#003|Error loading $filename"
        exit 1
    fi

done

if i see $? (echo $?) it give me 0 (zero) but the exit 1 is executed.

What i'm doin wrong?

Upvotes: 1

Views: 2301

Answers (1)

DigitalRoss
DigitalRoss

Reputation: 146261

You can't see what's wrong because you have /dev/null-ed standard error.

Also, you are using an unnecessarily complex and somewhat error-prone code pattern where you examine $? later. It would be better to just write something like:

for i in "$@"; do
  if mysql -u root < $i; then
    echo ok # do "ok" processing here
  else
    echo not so ok # error path
  fi
done

Upvotes: 2

Related Questions