簡體   English   中英

在C中實現子外殼

[英]Implementing a subshell in c

我已經用C語言實現了像shell這樣的bash。 我支持< > >> ; | & 我的下一個任務是添加對()基本上是子外殼的支持。 我們如何實現子外殼。 我可以分叉並讓父級等待,傳遞環境變量,但我需要為(ls | sort) ; ls等命令添加支持(ls | sort) ; ls (ls | sort) ; ls (我承認該命令沒有多大意義,但可以解釋其動機)

任何幫助表示贊賞。

為了實現這一點,我們解析命令行並創建樹狀結構。 這可以在lexyacc的幫助下完成,並且正如barmer建議的那樣,我們可以將每個節點命名為subshell pipeline semicolon 解析完整個命令行后,將指向整個節點的指針傳遞給主程序。 要運行一個子shell fork ,然后使用execve傳遞當前環境來重新加載相同的程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM