py 實現乙個shell

2021-09-13 01:25:23 字數 2308 閱讀 3912

我們要實現的乙個 shell 類似物

)# 讀取命令輸入

cmd = sys.stdin.readline(

)# 切分 命令

cmd_tokens = tokenize(cmd)

# 執行這個切分好的命令

status = execute(cmd_tokens)

# 魔法切割一行命令

deftokenize

(string)

:return shlex.split(string)

# 執行 execute

文字,從左到右:**如下:

from cd import

*from exit import*-

--import os

shell_status_stop =

0shell_status_run =

1history_path = os.path.expanduser(

'~')

+ os.sep +

'.yosh_history'--

-from constants import

*def

exit

(args)

:return shell_status_stop--

--import os

from constants import

*def

cd(args):if

len(args)

>0:

os.chdir(args[0]

)else

: os.chdir(os.getenv(

'home'))

return shell_status_run

實現乙個簡單的shell

shell 命令列直譯器,是一段程式,獲取標準輸入,進行解析,得到使用者想要執行的shell命令程式名稱,以及執行引數,然後執行這個指定的程式,將引數賦予其中。shell編寫思路 include include include include include intmain fgets buf,10...

在乙個py指令碼中呼叫另外乙個py指令碼中的類或函式

1.兩個檔案在同一目錄,直接import即可 2.兩個檔案在不同目錄 在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入 entry point 入口指令碼執行目錄和sys.path中包含的路徑例如包的安裝位址。所以如果要在當前指令碼引用其他檔案,除了將檔案放在和指令碼同一目錄下,還有以...

自己動手程式設計實現乙個shell

這是本部落格的第乙個文章 主要介紹如何用 c 語言基於linux系統來實現乙個簡單shell,diy 乙個shell。通過自己程式設計實現乙個linux下的 shell,可以使得個人對程序的概念 程序的通訊和作業系統的執行的理解更加的深刻。還會大大增加個人學習的成就感,提供學習興趣。這乙個文章 被命...