我正在用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显然可以做到这一点。
我想我将致力于实现管道,重定向和信号处理。