0

I need to reference the output of this mysql code

mysql -h xx.xx.x.xx -u xxxxxx -pxxxxxx xxxx_xxxx < cmd.sql

that does a count(*) to check if that db table has been filled or not. Trying to grab the return for an if statement later in the script.

I've tried both

count=$(mysql -h xx.xx.x.xx -u xxxxxx -pxxxxxx xxxx_xxxx < cmd.sql)
if [ $count > 0 ]; then
    echo "record found\n"
fi

as well as

count=$(mysql -h xx.xx.x.xx -u xxxxxx -pxxxxxx xxxx_xxxx "select count(*) from xxxx_x")
if [ $count > 0 ]; then
    echo "record found\n"
fi

but they both got a "[: count(*): unary operator expected" error.

I even tried to "select count(specific_column) from xxx_xx" with the same error.

1 Answer 1

0

You want

if [ $count -gt 0 ]; then

The > is the output redirection operator (analogous to <, which you're using above)

To capture the last line, just pipe your results through tail -1 (see here)

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks. I knew that was a problem but since the error wasn't on that line I didn't figure that it would be the issue. It fixed that error but now I get a "too many arguments" error. I suspect because the mysql command outputs 2 lines "count(*) | 0" How would I edit my code to only read the second line?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.