我們主要來看spawn類它的構造方法參數主要有command,從字面上就是指spawn類的子程序用來執行的子程序,也就是系統所能夠執行的相應的命令,對於command這個參數,我們是以字符串的方式給出它所需要運行的子命令,這里包括任何系統可執行的命令,也就是我們在某個系統下來使用spawn類的時候,這個系統帶有這個命令,或者說可執行這條命令,那么我們就可以將要執行的命令的字符串的形式,給command這個參數,並且這個命令是可以帶參數的,而且參數可以直接放入command,第三,如果我們使用command來執行系統中的命令,它不能夠直接支持管道,通配符,標志輸入,輸出,錯誤重定向。


下面我們繼續看,如果使用command這個參數,首先我們打開虛擬機,進入Python3交互的環境,導入pexpect庫,那么我們首先傳遞給他一個最簡單的命令,首先是列出當前路徑下的所有文件和目錄的命令,用“ls”這條命令,我們要看到這條命令的執行結果,可以調用spawn類的方法來查看,這樣我們就可以看到用ls所列出來,也就是當前目錄下所有的文件以及文件夾主要包括這些。
在給command這個參數傳遞命令的時候,還可以給這個命令帶上參數,比如將這里面的“ls”命令進行修改一下,修改為帶有一個參數,以及它有列出的是哪個目錄,然后我們用剛才的同樣的方法,來查看這個命令運行的結果。

可以看到它其實就是“ls - l/home/djx’”這條命令,但是它列出的目錄,仍然是和剛剛的目錄是相同的,並且采用的是列出詳細信息的形式,對於這個command參數,它雖然可以接收一條命令或者是帶有參數的命令,但是我們剛才有講到,它是不支持管道等操作符的,那么我們下面來看一下,如果傳遞給他一個帶有管道符的這種命令的時候會出現什么情況?

如圖,輸入命令,我們給它一個管道命令,表示我們從開始的文件中顯示所有的內容,並且搜索這個字符串gree,然后我們用同樣的方法來進行查看,可以看到這個命令在執行的時候,出現了錯誤的提示,這個錯誤的提示也就是test和grep沒有那個文件或目錄,所以在這個地方,grep是把這個管道符當成是一個普通的字符,那么也就是認為test和grep作為一個文件名出現的,那么當然它不會找到這個文件並且列出其內容的,那么這個gree也提示沒有那個文件或目錄,是因為管道符以及通配符等等在command當中是不能夠直接支持和使用的,這就是我們要介紹的作為構造參數的第一個command它的使用方法。
