bash 解析db2look 导出的sql文件中的create table语句

通过bash解析db2look 导出的sql文件中的create table语句,并写入对应的独立的文件。

脚本如下:

其实,grep也能提取,只是不方便分文件写入,而且,不方便去掉不想要的IN子句,grep的写法:

bash 清理文件空行以及行首行位空行

一般来讲,这个事儿是sed该干的,但是,sed做起来也不那么简单,可能每次写都需要问百度。

bash如何实现呢?

这里涉及了三种情况:

  1. 空行(空字符)
  2. 行首空字符
  3. 行尾空字符
  4. 空字符可能是空格有可能是tab,一般也就这两种情况了

写起来是不是比较麻烦?

脚本:

简直不敢相信,远比sed要简单的多吧。

因为read自然帮我们去的掉了行首行尾的空白了。

不过需要注意的是:

  1. 这里echo的$line 是加了双引号的,如果没有双引号,echo 就会帮我们把line中间的空格或tab给吃掉,连续的空白只剩余一个空格;加入我们想要的就是这种效果的话,你们直接去掉双引号就行了,省却考虑相关处理逻辑了
  2. 如果文件中含有类似 “a\+b\c” 这种包含了\ 的字符串,处理完之后, \ 就没了; 所以,上面的处理方式有局限性
  3. 如果文件是二进制文件,也不能这样处理

 

关于echo “$line” 中双引号的作用:

假如 line=”1 2    3″

echo $line   等效于  echo 1 2   3  ;根据我们基本的认知,2和3中间有多少个空格都等于1个空格,对于echo来讲都是3个参数

echo “$line” 等效于 echo “1 2   3” ; 这里的echo接收到的是1个参数,自然不能随意丢掉其中的空格

db2 命令行查看表结构

db2 中没有类似mysql中的show create table 的命令,只是db2look 可以导出表结构,如果要查看建表语句也不太方便,尤其想把每个表的建表语句都放在单独的文件,下面的命令可以从db2look到处的sql文件中提取表结构:

 

不过这样的话,也是先db2look得到文件后,先将表名提取出来,再提取表结构,步骤稍许麻烦。

db2look 用法:

本周工作内容

周一

  • 启用蜜蜂到北研的专线
  • 整理现有开发测试环境

周二

  • 整理现有开发测试环境
  • win10上正确安装db2
  • 熟悉禅道
  • 了解哈行项目相关文档及系统状况

周三

  • 关于测试环境的实施方案

周四

  • 汇总、统计、熟悉涉及的系统,以及系统之间的关系,确定系统对应的svn地址,为搭建测试环境做准备
  • 看到全流程的源码后才发现全流程根本不可怕
  • 消金运维的事情终结了

周五

  • 关于测试环境总得有个结果的
  • 可以从esb入手了解系统之间的调用关系
  • 为没有测试环境的系统申请测试环境
  • 今天了解相关系统,发现一个秘密,全流程使用小机不是因为x86不支持,只是因为系统不支持分布式部署
  • 下周赶紧申请测试验证环境

关于virtualbox中vboxsf挂载的共享目录中不能创建软连接的问题

参考:

https://superuser.com/questions/446362/why-cant-i-create-soft-link-on-vboxsf-file-system

处于安全考虑,virtualbox 4.1.8之后, 不允许在共享目录中创建软连接,尽管不是只读挂载,创建软连接也会提示readonly;

原本的符号链接会访问错误的,如: Protocol error

快捷的做法是:我们可以直接copy原始文件,而不是使用软连接

但是可以通过如下命令修改:

 

实测:

VBoxManage setextradata docker VBoxInternal2/SharedFoldersEnableSymlinksCreate/workspace 1

 

还有一个问题: vboxsf挂载的文件系统的mode是固定的,通过chmod修改不了,如果有些文件就是期望某种mode的话,就是不好搞的,所以这个文件系统时不时会给我们带来麻烦

wordpress之文章版本功能

一次保存文章时,不小心删除了很多内容,几小时后才发现,有点抓狂;

抓狂是没有用的,突然想起很多wiki都是有历史版本的功能的,如果wordpress也有该都好,其实是有的,就在眼皮底下,只是从来没用过而已;

第一次保存时看不到的:

更新后就能看到的:

找到历史版本,回退到指定的历史版本就可以了\(^o^)/

 

 

blade 之点滴

blade官方文档: https://laravel.com/docs/5.8/blade


@verbatim

如果输出中要包含 {{ … }}; (通常为由js解析的模板,如vue),则可以使用@前缀避免php进行翻译,如:

@{{name}}

最终输出为

{{name}}

正好可以被js当做模板使用;

但是,如果一大段都是js的模板(没有一点点需要php替换的变量)呢?每个都前面添加 @ 有些啰嗦,于是可以使用

@verbatim

相当于给这个部分统一添加了@前缀


关于:

 

默认情况下: {{$name}}中的$name 是被htmlspecialchars 处理的,如果不想被处理,可以使用 {!! $name !!} 标记


组件别名

可以在AppServiceProvider.php  中指定组件的别名,方便使用组件:

则,就可以在模板中使用:

 

来替代


输出json

不过这里一定要使用单引号


通过 @auth 直接判断是否已登录,未登录就是@guest

还可以指定要检查的guard,如: @auth(“admin”)


@php

通过@php直接嵌入一块儿PHP代码


关于组件和子视图的比较


自定义指令


自定义if语句

当 fetch 遇到 重定向

js中的fetch默认跟随重定向的,如果遇到了重定向,则我们在then中拿到的response信息中看到的完全是重定向后的请求的信息了,如:

幸运的是,我们可以根据redirected属性判断出来是否被重定向了。

另外,也可以通过fetch的第二个参数的option来定义是否跟随重定向:(注意: redirect属性是有仅有的几个可选值的)

redirect 可选值: error

但是,我们并不能从error信息中看到失败的原因

 

 

参考: