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的脚本格式是固定的,如下:

1
2
3
#!/bin/sh
#comments
Your commands go here

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

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

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

1
sh script.sh

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

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

1
chmod a+x script.sh

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

1
./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 的文件,并且输入如下代码:

1
2
3
4
5
6
7
8
9
<?php
class Tools extends CI_Controller {
 
  public function message($to 'World')
  {
    echo "Hello {$to}!".PHP_EOL;
  }
}
?>

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

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

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

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

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

1
$ php index.php tools message "John Smith"

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

****CodeIgniter使用cli模式运行,把php作为shell编程的更多相关文章

  1. php脚本cli 模式运行

    参考文章 http://rapheal.sinaapp.com/2013/11/20/php_zend_hello_world/ http://www.douban.com/note/33788568 ...

  2. Jmeter系列(40)- 详解 Jmeter CLI 模式

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 什么是 CLI 模式 CLI = Co ...

  3. 『动善时』JMeter基础 — 55、JMeter非GUI模式运行

    目录 1.JMeter的非GUI模式说明 2.为什么使用非GUI模式运行JMeter 3.怎样使用非GUI模式运行JMeter (1)非GUI模式运行JMeter步骤 (2)其它参数说明 4.CLI模 ...

  4. 『动善时』JMeter基础 — 55、使用非GUI模式运行JMeter(命令行模式)

    目录 1.JMeter的非GUI模式说明 2.为什么使用非GUI模式运行JMeter 3.使用非GUI模式运行JMeter (1)非GUI模式运行JMeter步骤 (2)其它参数说明 4.CLI模式运 ...

  5. 处理Codeigniter CLI模式无法读取通过Apache写入的文件缓存

    运行环境: Ubuntu 16.04 + PHP 5.6.40 + Apache/2.4.18 Codeigniter: 3.1.10 Codeigniter 3.1.10,缓存驱动方式是文件方式 遇 ...

  6. 获取当前PHP运行环境是否cli模式

    需要用到系统函数php_sapi_name() 或者 系统常量 PHP_SAPI,返回 cli 或 cli_server /* 判断当前的运行环境是否是cli模式 */ function is_cli ...

  7. ThinkPHP3.1.2 使用cli命令行模式运行

    ThinkPHP3.1.2 使用cli命令行模式运行 标签(空格分隔): php 前言 thinkphp3.1.2 需要使用cli方法运行脚本 折腾了一天才搞定 3.1.2的版本真的很古老 解决 增加 ...

  8. PHP CLI模式开发

    PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合.有两种方法可以运行PHP CLI脚本. 第一种方法是使用 # php /path/ ...

  9. php CLI 模式下的传参方法

    在CLI模式(命令行界面 Command Line Interface)下,传入参数有如下3种方法: 一. getopt函数(PHP 4 >= 4.3.0, PHP 5) getopt - 从命 ...

随机推荐

  1. spring边边角角

    我们在使用ssh框架的时候,很多人抱怨为什么之前都运行得好好的,第二天就报错了,我也是被这个问题纠结了很久. 我们来看看spring的配置文件: <?xml version="1.0& ...

  2. linux 文件系统sysvinit 流程分析

    参考网上许多的教程. 然后有一下相关的笔记: kernel 在挂载完文件系统后,会执行第一个进程init 这个进程的PID为1 这个进程是所有进程的父进程 init 进程,首先要去读取inittab中 ...

  3. 在django项目外,使用django.db链接数据库(postgres)

    要用python链接到数据库,又不想写太多代码.想到了django,就偷懒了下.用django.db直连. django版本:1.6.5 (1.5以后可以用以下代码) #coding=utf-8 __ ...

  4. Maven打包附加配置文件

    在build节点下增加resources. <build> <!-- 资源 --> <resources> <!-- 复制非class文件 --> &l ...

  5. python脚本-开机自动联网

    办公室的电脑开机之后,需要打开浏览器登录校园用户认证网页,输入用户名密码登录认证之后才能联网,每次都这样搞很麻烦,写了个Python脚本自动完成这个工作. onStartup.py #file:onS ...

  6. 【leetcode】Path Sum II

    Path Sum II Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals ...

  7. 76 binary_search 查找重复元素

    [本文链接] http://www.cnblogs.com/hellogiser/p/binary-search-for-repeated-element.html [题目] 给定一个升序排列的自然数 ...

  8. DataTemplate应用

    在WPF中,决定数据外观的是DataTemplate,即DataTemplate是数据内容的表现形式,一条数据显示成什么样子,是简单的文本还是直观的图形,就是由DataTemplate决定的.下面通过 ...

  9. Solr集群常用的操作总结

    之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...

  10. modelsim do文件仿真

    1.编写sim.do文件 ##### Quit the Simulation ##### quit -sim   ##### Make work directory && Create ...