兩周的業餘時間,寫了個簡單的shell

2021-06-26 10:58:49 字數 961 閱讀 5153

linux下的,環境是 fedora

實現了基本的內部命令功能,及比較完善的內部命令框架。 

類似於mfc訊息對映表的方式,寫完乙個內部命令,只需要向這個標頭檔案中,匯入乙個標頭檔案,再寫入命令處理函式,就可以把乙個內部命令插入到內部命令表中 。好歹我也是看過猴姐書的人。。。。

我的程式現在的缺點就是,不能執行終端的管道操作和重定向操作。

管道操作和重定向操作其實很簡單。但是問題在於,管道操作是可以無上限的

比如:    ls | grep e | grep s | grep . | grep i | grep c

只要我想,就可以無限地寫下去,管道操作可以無上限,這樣問題就來了。。如果是個輸出管道,好辦。但是輸入管道怎麼辦。

我這裡測試的問題就是,輸入管道,如果我在外面寫入的話,外部命令的管道接收端不會搭理我,不知道為什麼,不管我怎麼寫,它都不搭理我,不收我寫的東西。。當然了,我確定對方命令已經在監聽我的管道了,但是它就是不收我的東西。。。鬱悶。。。

還有個問題就是,linux不同於windows,父程序一定要後於子程序結束,不然的話,子程序就變成孤兒了。會有大問題。

也就是說,父程序必須後結束,而且父程序也必須是接收端,這樣。。。再回頭看前面那條指令,比較麻煩了。。。

由於管道操作麻煩,所以我乾脆就沒寫,重定向操作類似,因為  >  等等操作也是可以無上限的。。。麻煩

其他方面,沒什麼大問題了,包括 shell 指令碼解釋,來回的程式啟動,都沒大問題。。

我自己寫的東西,記錄一下,業餘兩周時間,才寫了這麼點東西,不到1200行有效**。

不過我感覺,這個東西應該是我考慮得最周全的了。。。

從上到下的框架設計,模組拆分,功能復用,功能新增,基本上大部分需要新增的,只要匯入乙個標頭檔案,插入乙個巨集就好了

明天交貨了。先這樣吧。。。

1個月的業餘時間能做什麼事

留給自己的紀念,給自己點壓力,也給自己點動力!目標 1個月內學習swift 並使用swift重構工銀現金快線。閱讀開源專案 一.函式標記 1 override func 複寫,過載 代表 過載方法 例子 override func viewdidload 2 escaping 逃離函式閉包 相當於b...

分享業餘時間開發的乙個影視採集及管理系統

極大的可能會在最近離職加入一家極具挑戰的公司,時間和精力都會有乙個比較大的調整。做這個系統也是出於娛樂的目的,但目的絕對是單純的。因為最初規劃的時間關係,一切從簡從快,主要功能特性如下 1,前端頁面開發直接就bootstrap 3.0 後台管理頁面也用到了基於bootstrap的一套ui框架。基本上...

自己用JS寫了乙個簡單的時間控制項。。。

繪畫時間選擇器 var timeselect topattr top leftright center r bottom button 繪畫時間選擇器開始 timeselect.window function obj timeselect.obj obj var time new date var ...