shell 2>&1

 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"}

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2267165
今日推荐