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!。