X皮书之shell实战开发

开发 开发工具
导入数据的脚本我已经开发完了。现在就剩下命令行调用了。今天我就专门研究了下shell的应用,我把我的思考过程写一下。

最近正在忙于开发豆瓣数据同步,主要原因是豆瓣接口不给力,超过一定的访问量就抓不到它的数据。所以决定把豆瓣的数据导入到本地服务器,然后使用我们自己的数据。

导入数据的脚本我已经开发完了。现在就剩下命令行调用了。今天我就专门研究了下shell的应用,我把我的思考过程写一下。

准备

这是要使用的php测试脚本(并不是我的线上代码,只是一个样例)。

  1. <?php  
  2. if ($_SERVER['argc'] < 2) {  
  3.     echo "调用不正确!\n";  
  4.     echo "调用方式:";  
  5.     echo "php {$_SERVER['argv'][0]} { rsync_show  | rsync_show_by_id 1231123 | rsync_douban }\n";  
  6.     exit(-1);  
  7. }  
  8. function rsync_show() {  
  9.     echo "调用节目数据\n";  
  10. }  
  11. function rsync_show_by_id($id) {  
  12.     if(emptyempty($id)){  
  13.         echo "缺少参数...\n";  
  14.         exit(-1);  
  15.     }  
  16.     echo "根据指定ID开始导入节目数据\n";  
  17. }  
  18. function rsync_douban() {  
  19.     echo "调用豆瓣数据层\n";  
  20. }  
  21. foreach ($_SERVER['argv'as $k => $v) {  
  22.     if($k == 0)  continue;  
  23.  
  24.     if($v == 'rsync_show_by_id'){  
  25.         call_user_func($v$_SERVER['argv'][2]);  
  26.         break;  
  27.     }else{  
  28.         call_user_func($v);  
  29.     }  
  30. }  
  31. exit(0); 

查看几个调用结果

 [[101291]]错误1

[[101291]]错误2

 [[101291]]正确的调用方式

 [[101291]]通过crontab -e设置个定时执行脚本

[[101292]]

#p#

shell 脚本

1、开始使用shell脚本编程

 [[101291]]运行脚本

[[101293]]

2、添加一个停止脚本

[[101294]]

3、函数整理

[[101295]]

#p#

shell 查漏补缺

[[101296]]

两大问题:1、是不是再写一个方法?2、怎么传参啊?

第一个问题,直接用start方法就行了,没必要再写一个方法!——多写一个方法是要付出代价的。

第二个问题怎么解决,我忽然想到在我们安装开源软件的时候喜欢这么用,如下图  

所以我决定也使用类似的方法作为参数传递之用。

具体看我下面的方法调用啊!

 [[101291]]运行脚本

 重点:

[[101291]]放入crontab中

我在php的源代码中的configure中发现了一个不错的输出字符的方法,与大家分享

 [[101291]]运行效果

[[101297]]

总结

这就是我今天收获的一些东西,shell我也不是很精通。如果大家有更好的建议,希望告知一、二。

[[101298]]

原文链接:http://www.cnblogs.com/baochuan/archive/2012/10/24/2737723.html

【编辑推荐】

  1. X皮书之shell热身
  2. PHP、jQ和CSS制作头像登录窗
  3. 图文并茂PHP跟老大的对话
  4. PHP实现人人OAuth登录和API调用
  5. jQuery和PHP打造功能开关效果
责任编辑:张伟 来源: 川山甲的博客
相关推荐

2012-10-29 09:53:28

2021-04-21 06:15:28

Serverless 云开发 Todo 案例

2012-06-14 10:22:21

网易微博HTML5开发

2013-11-13 01:25:33

微信微信公号微信公众账号

2012-06-18 14:22:09

HTML5

2022-08-15 22:09:37

设备开发开发笔记

2009-06-19 19:11:05

ibmdwlotus

2009-07-31 16:57:19

ibmdwiWidget

2009-10-23 13:44:03

linux Shell

2013-11-13 01:19:18

2022-08-15 22:20:46

应用开发华为IoT平台

2010-06-01 18:03:05

Rsync 使用

2011-12-12 10:40:08

Cocos2d-X游戏开发开发环境

2011-07-20 11:01:39

2020-08-21 17:57:29

工作组

2021-12-21 14:00:25

WebpackDevServer的开发

2013-11-18 11:38:39

Flash-x手游开发

2017-06-26 16:04:11

LinuxShell命令

2021-12-09 10:17:25

部署实战Linux

2014-05-05 15:20:07

集群配置Web开发
点赞
收藏

51CTO技术栈公众号