mysql -u root -ppassword -D database -s -N -e "SELECT id FROM myTable"

with special password and database is working fine.

I want to split the code into two parts:

  1. Executional part:

    mysqlE=mysql -u root -ppassword -D database -s -N -e


  1. MySQL command part:

    query="SELECT id FROM myTable"

to execute it with something similar like:

mysqlE query

How can I do this?

  • 1
    passing a password on the command line is a bad idea as it can easily be viewed from /proc or by running ps. See unix.stackexchange.com/a/205184/7696 for a better alternative. Remember to chmod 600 the config file.
    – cas
    Oct 21, 2015 at 0:02

1 Answer 1


You almost have it already for a shell script:


mysqlE="mysql -u root -ppassword -D database -s -N -e"
query="SELECT id FROM myTable"
$mysqlE "$query"

Another way is to put the mysql command in a function (put it in ~/.bashrc for instance)

function mysqlE()
    mysql -u root -ppassword -D database -s -N -e "$@"

from a new shell or source ~/.bashrc use

mysqlE "$query"

You must log in to answer this question.