我正在用C编写一个shell。在昨天之前,我对编写shell的含义还不十分清楚。这是您的shell必须要做的事情!我确定缺少一些重要的东西。
解析您键入的内容,以确定哪些是命令,哪些是参数(ls -la LICENSE
)
扩展ls *
成ls file1 file2 file3 ...
如果编写ls | grep blah
,则需要将输出从发送 ls
到grep
。以及重定向。
信号处理!如果按Ctrl+C
,它需要将该信号发送到您正在运行的任何进程。或者其他的东西。我还不太了解。
流程管理!使您可以进行后台和前台作业。(Ctrl+z
和fg
和bg
)
Shell脚本!(用于循环和事物)
Shell 不需要做的事情:
使用$PATH
环境变量找出要执行的命令。exec
显然可以做到这一点。
我想我将致力于实现管道,重定向和信号处理。