红联Linux门户
Linux帮助

一个Linux下Shell的编写思路

发布时间:2007-06-01 09:09:03来源:红联作者:Ddrmail
  编写Linux下可运行的Shell

  首先,得明白Shell是一个命令解释器。Shell的功能就是能接受用户输入的指令,并作出相应的执行且能返回结果。

  第二,编写的是个程序,而不是一个Shell脚本,所以得选择编程语言,Java是个跨平台的编程语言,用Java写这个Shell是比较合理的。C或C++是比较常用的了,且其函数库也是比较齐全的,用它们也是不错的。

  第三,考虑下这个Shell的功能。因为这一次写的是个比较简单的Shell,实现的命令只有dir(ls -la),help,pause,clr(clear/cls),cd,environment,最后还有重定向,所以用C就可以实现了(虽然我不太会C语言)。

  因为要在Linux下运行,所以要知道Windows和Linux的C/C++函数特别是库函数的区别,肯定是有区别的。比如,Windows下的cin.get()在Linux下就要出问题。

  因为要用C语言来实现,我考虑到以前学的是C++,对C不熟悉,就查阅了LinuxC函数库。网上有本书专门讲的是LinuxC函数库,不过是扫描版的pdf,很可惜,字也比较模糊。不过还好,我的这个Shell主要用到的是字符串比较函数。其他的都可以将输入流中读入的字符串处理一下再交给System()函数就可以了。

  最后比较麻烦的是重定向的实现。这个可以用文件输入输出实现。

  于是一个简单的能在Linux下运行的Shell就写成了。
文章评论

共有 0 条评论