在shell脚本中捕获mysql输出

Sac*_*hin 3 shell

我是shell脚本的新手.我正在尝试编写一个shell脚本,我可以在从该文件读取后运行mysql命令.我必须在单独的文件中捕获sql命令的输出.以下是代码:

mysql -h ${DB_SERVER} -P ${DB_PORT} -u ${USER} -p${PASS} -f < createUsers.sql >> install.log
Run Code Online (Sandbox Code Playgroud)

Shell脚本从用户那里获取一些输入.当我运行shell脚本并且如果我指定了错误的密码时,错误会显示在控制台上但不会显示在日志文件中.

请建议我如何将错误重定向到日志文件.

Joh*_*ica 8

添加2>&1到最后也捕获stderr.标准输出是文件描述符1,标准错误是2,因此这会将stderr重定向到stdout 1的去向,即install.log.

mysql [options] < createUsers.sql >> install.log 2>&1
Run Code Online (Sandbox Code Playgroud)

注意:重定向的顺序很重要.请确保你把它之后>>,之前不是.