`
maosuhan
  • 浏览: 109773 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用php编写linux的shell(参考)

    博客分类:
  • php
阅读更多

部分内容参考自

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");  
 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics