用php編寫linux的shell(參考)

部分內容參考自

http://tieba.baidu.com/f?z=595442653&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&word=%D6%B1%CF%DF%B5%C4%C3%D8%C3%DC&pn=30

這段時間想學一下有關於shell的編程,因爲我覺得這樣很酷的。但是,覺得那個linux下的shell用了實在是看着不順眼,那語法感覺相當不合常理。於是到網上找資料,看到有人用php寫shell的,自己最近也在集中精力搞php,又不想再去學另外一門語言了。就先試着用用,使用過程如下。

 

現確保你的usr/bin下有php這個可執行文件,因爲我始apt-get安裝的php,所以這個目錄下本來就有這個文件的。

然後隨便在哪個地方新建一個文件,名叫test.php,內容如下

#!/usr/bin/php
<?php

print("hello world\n");

?>

 

第一句話,貌似就是指定用什麼解釋起解釋的,默認的話會用bash來解釋,但是我們指定php來解釋,怎麼樣,合情合理。


打開終端,進入test.php所在的目錄,然後./test.php,就會看見hello world了,怎麼樣,很酷吧!

 

但是我們經常會傳一些參數進去,那麼這個時候可以用php本身就有的$argv數組來得到,這裏的機制和c語言的一樣,比如

#!/usr/bin/php
<?php
foreach($argv as $a)
{
print("$a\n");
}
?>

 

我在終端輸入./test.php 1 2 3 4 5 6,結果就是

 

./test.php
1
2
3
4
5
6

 

我還看到有人寫了一個關於c裏面的scanf和c++的cin的等待用戶輸入的函數

function read() { 
$fp = fopen('/dev/stdin', 'r'); 
$input = fgets($fp, 255); 
fclose($fp); 
return chop($input); 
} 
 


這裏需要加上chop也就是java裏面String的trim函數。因爲你按回車得到的字符會帶上換行符的。

生搬下來就是

print("What is your first name? "); 
$first_name = read(); 
print("What is your last name? "); 
$last_name = read(); 
print("\nHello, $first_name $last_name! Nice to meet you!\n");  
 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章