在shell脚本中使用expect

expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。

expect有四个关键命令,作用如下:

  • send:用于向进程发送字符串
  • expect:从进程接收字符串
  • spawn:启动新的进程
  • interact:允许用户交互

关于四个命令的详细用法,这里不做过多介绍,网上资料很多,大家可以自行搜索,下面只列举一个最基本的用法,使用shell脚本登录远程服务器:

Yii2自动生成接口文档插件 yii2-doc-online

    眼下前后端完全分离的开发模式是越来越火,好多项目都直接摒弃了常规的套页面方式,而改用前端控制主要业务逻辑,后端只提供接口数据的模式。这样一来,前后端就需要频繁的沟通接口含义。于是一个好的接口文档总是能事半功倍的,但是后台开发人员开发出接口后,写接口文档又是一个麻烦的事情,费时费力不说,当接口改动时,还要时刻记着去修改接口文档。

    介于本人平时需要开发很多接口,也要写很多文档,于是决定开发一款可以自动生成接口文档的小工具——yii2-doc-online,只要开发人员按照规范写好注释,那么接口文档就会自动生成了。

<转>微信素材上传返回提示 “errcode”:41005的原因以及以及解决方案

【原因】:由于不同php版本导致curl方法用法有所改变导致的

【解决方案】:将自己即将要进行微信请求的数据适当处理一下,如下:

例如未处理的数据如下

$data=array(
    'media'=>'@'.'自己的文件路径'
);

上面的格式微信官方文档也是这样的写的,但是如果你php版本>=5.6后,这种写法就会导致文件无法进行上传到微信服务器最保险的做法如下(兼容所有php版本),将上面的数组作如下处理

if (class_exists('\CURLFile')) {
    $data[$k] = new \CURLFile(realpath($this->getImage($v, $file_name)));
} else {
    $data[$k] = '@'.realpath($this->getImage($v, $file_name));
}

【为什么要这么做?】: