zoukankan      html  css  js  c++  java
  • CodeIgniter使用cli模式运行,把php作为shell编程

    shell简介

    在计算机科学中,Shell俗称壳(用来区别于核)。而我们常说的shell简单理解就是一个命令行界面,它使得用户能与操作系统的内核进行交互操作。

    常见的shell环境有:MS-DOS、Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh)等等。

    shell的脚本格式是固定的,如下:

    #!/bin/sh
    #comments
    Your commands go here

    第一行称之为shebang,符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。

    有两种运行shell的方式:一种是将脚本作为sh的命令行参数,另一种是降脚本作为具有执行权限的可执行文件。

    将shell作为命令行参数时的运行方式如下:

    sh script.sh

    如果将脚本作为sh的命令行参数来运行,那么脚本中的shebang行也就没什么用处了。


    为了是shell脚本能够自己独立运行,需要具备可执行权限。要使脚本独立运行必须利用shebang行。它通过使用位于#!之后的解释器来运行脚本。至于脚本的可执行权限,可以通过chmod命令来设置:

    chmod a+x script.sh

    上面的chmod命令赋予所有用script.sh文件的可执行权限。那么这个脚本就可以作为可执行程序运行:

    ./script.sh

    php-cli简介

    用Shell编程可以灵活地解决大量重复任务,十分方便。但是,Shell的语法十分怪异,不容易记,如果现在熟悉的语言可以用来写shell那就好了——比如php——就可以快速开发Shell程序了。

    于是php-cli就营运而生了,php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等)。

    也就是说,php不单可以写前台网页,它还可以用来写后台的程序。当然是跟php一模一样啦,因为它就是php嘛!只不过一些默认的参数与php-cgi不同,比如运行时间:php-cli默认运行时间是无穷,而网页php默认设置是30s。

    codeigniter cli模式

    让我们试一试:Hello World!

    首先创建一个简单的控制器。使用你的文本编辑器,创建一个叫做 tools.php 的文件,并且输入如下代码:

    <?php
    class Tools extends CI_Controller {
    
      public function message($to = 'World')
      {
        echo "Hello {$to}!".PHP_EOL;
      }
    }
    ?>

    然后将这个文件保存到你的 application/controllers/ 文件夹里。现在正常情况下你可以通过你网站的 URL 来访问它:

    example.com/index.php/tools/message/to

    除此之外,我们也可以在 Mac/Linux 中打开终端,或者在 Windows 下进入“运行”输入“cmd”,并进入我们的 CodeIgniter 项目的目录。

    $ cd /path/to/project;
    $ php index.php tools message

    如果你跟这这一步步下来,你应该会看到 Hello World!

    $ php index.php tools message "John Smith"

    这里我们像使用 URL 参数一样给它传递了一个参数。“John Smith”作为一个参数被传递了,并且输出也变成:Hello John Smith!


    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    SVN——Jenkins自动发布
    IIS之虚拟目录学习
    SVN迁移
    通过配置host,自定义域名让本地访问
    比较两个时间的大小 举例:CompareDate("12:00","11:15")
    [转]SQL Server 批量完整备份
    js前台编码,asp.net后台解码 防止前台传值到后台为乱码
    前端将图片二进制流显示在html端
    【转】解析<button>和<input type="button"> 的区别
    利用bat批处理——实现数据库的自动备份和删除
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4618487.html
Copyright © 2011-2022 走看看