c語言編寫shell程序myshell


前一段時間,一個同學的朋友找到我,讓我幫他完成一項作業。

作業的內容大體是制作一款簡易的shell程序,程序的框架由命題人已經搭好,需要在現有的框架下完成一系列的命令,例如ls、cd、exit、time等等。

題目要求點擊我

寫好的程序代碼點擊我

源碼文件分析如下:

myshell.c :主程序,接受參數,輸出信息。

myshell.h:頭文件定義引用

globals.c:對命令進行分類

parser.c:對命令進行解析,用了487行代碼

execute.c:具體執行命令,我的主要是修改了這個文件,大概增加了200行代碼

Makefile:編譯程序

主要修改了execute.c,用於添加命令函數和執行命令。
還有myshell.h用於添加頭文件和聲明函數。

使用方法:
在目錄下輸入make,編譯成myshell可執行程序。
然后./myshell進入命令行,即可執行shell名。
例如ls,cd /opt,time,/usr/bin/cal -y等

完成的功能有:
step0
建立了Makefile文件,使用make命令即可編譯成myshell程序。

step1
執行外部命令,如/bin/ls或/usr/bin/cal -y

setp3
執行內部命令,也就是自己定義的命令
1. exit 退出命令
2. cd 切換目錄,cd為切換到默認目錄或者cd /opt 切換到指定目錄。
3. time 執行時間命令
4. ls 列出目錄ls ,ls /opt

step4
支持順序執行;
支持與執行&&
支持或執行||

step6
支持文件輸出重定向
ls > a.txt 重新寫
ls >> a.txt 追加寫

step9
后台執行函數
ls; /bin/ps & time
time將會后台執行

題目的目的主要考察c語言的基本功,以及linux函數的使用。

由於水平有限,題目的要求里有很多沒法完成,如果小伙伴們有興趣的話可以進一步完善哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM