2>&1 将错误输出转换成标准输出(错误输出,用变量是接收不到的,转换为标准输出后,用变量可以接收到)。
示例:
#!/bin/bash #该脚本接受2个参数 #参数1 数据库名称 #参数2 数据库字符集 username=root password=root host=10.70.2.157 port=3306 connectstr="mysql -u${username} -p${password} -h${host} -P${port}" #如果没有传递编码,则默认为utf8 if [ -z $2 ] then charset="utf8" else charset="$2" fi # 2>&1 将错误输出转换成标准输出(错误输出,用变量是接收不到的,转换为标准输出,是为了用变量接收)。 result=`${connectstr} -e "CREATE DATABASE $1 DEFAULT CHARACTER SET $charset" 2>&1` # $? 值为 0,表示执行成功 if [ $? -eq 0 ] then echo "{\"result\":true}" else echo "{\"result\":false,\"desc\":\"${result}\"}" fi
执行成功时的结果:
{"result":true}
执行失败时的结果:
{"result":false,"desc":"ERROR 1007 (HY000) at line 1: Can't create database 'test12090'; database exists"}