自主實現一個shell--------minshell
shell:命令行解釋器-------解釋執行用戶的輸入(完成相對應的功能)
步驟
1. 獲取標準輸入中的字符串
2. 對字符串進行解析[ls -l -a][ls ] [-l ] [-a]
3. 創建子進程
4. 子進程中進行程序替換
5. 父進程進行進程等待
自主minshell實現
1. 獲取標準輸入
2. 解析輸入得到【命令名】+【運行參數】
3. 創建子進程,子進程中進行程序替換
4. 進程等待-----避免僵尸進程
又失敗了,匹配失敗了,緩沖區里如果只有一個回車,取不出\n。
%[^\n] 從緩沖區取數據的時候,遇到\n為止:【ls -l】
經過這一步之后,緩沖區中留下了\n,但是\n取不出來,導致scanf非阻塞
但又取不出來最后的\n字符
%*c 從緩沖區中取出一個字符(丟棄)
如果他不是空白字符
isspace 判斷是否是空白字符
取出了一個字符串。
contiune 為了避免解析失敗(一個回車),沒有獲取到字符串,還去向子進程創建命令。
wait避免真正的替換時子進程出現僵尸進程
完成了ls的功能