您的位置:首页 > 运维架构 > Shell

shell和mysql使用总结

2015-09-18 10:25 513 查看
1 判断字符串是否相等

if [空格$x空格=空格$y空格]; then

fi

注意,=左右的空格必不可少
2 判断整数是否相等,用-eq,不相等用-ne
3 ``跟$()都是执行shell命令的意思

4 日期函数


$(date +'%Y-%m-%d %H:%M:%S')

用+指定格式,注意,+与后面的字符串之间不能有空格

用-d指定时间运算,比如往前一天

$(date -d '-1 day')

一般-d都要结合 +使用,要指定返回格式的

$(date -d 'yesterday')
5 mysql 执行select返回结果如何获取?

将命令放在$()中执行,然后返回结果赋给一个变量

如果查询了多列的话,这个变量将会是一个字符串,打印出来会看到依次是所有字段名所有字段值,中间用空格分割

如果不需要字段名,可以在执行mysql命令时,加上参数--skip-column-names

比如:

result=$(mysql -h ${host} -P ${port} -u ${user} -p --default-character-set=utf8 --skip-column-names  -e "select x,y,z from tablename")

现在result是由空格分割的字段值组成的字符串

将它转成数组,可以方便的 使用

转数组:arr=($result)

取数组值:${arr[0]},${arr[1]}
6 字符串截取

${字符串:开始坐标从0开始:要截取的长度}
7 时间戳转换

时间转时间戳:

stamp=$(date -d "$时间" +%s)

时间戳转时间:

date=$(date -d "@$时间戳" +''%Y%m%d %H:%M:%S')
8 字符串拼接

直接变量后边加"要拼接的内容"

例如$x"字符串"

中间不需要加号
9 如果mysql命令成功执行,返回的是0,

如果是自己的命令,失败原因不明确的可以用exit 2退出
10 在mysql语句用<< EOF EOF包围时,对于字符串变量,应该用双引号包一下,例如"$字符串变量",不能用单引号

11 想要看mysql具体是什么语句在执行,可以用cat << EOF EOF来包含SQL语句,这样执行shell脚本就会打印出来真正被执行的sql

12 数值运算,加减乘除,要写在$(())中,否则会被当成字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: