如何在 Linux 上安裝程式時自動輸入“Yes”?


簡介

在 Linux 上安裝程式有時需要使用者互動,例如同意許可條款或指定安裝選項。自動化此過程的一種方法是使用指令碼自動輸入所需的響應。在本文中,我們將討論如何在 Linux 上使用命令列指令碼化單詞“yes”以安裝程式。

使用“yes”命令

yes 命令是一個簡單的實用程式,它重複輸出一個字串,這對於自動化任務(例如接受許可協議)很有用。

安裝“yes”命令

在使用yes 命令之前,我們需要確保它已安裝在我們的系統上。為此,我們可以使用 Linux 發行版的包管理器。例如,在基於 Debian 的系統(如 Ubuntu)上,我們可以使用apt-get,如下所示。

$ sudo apt-get update
$ sudo apt-get install coreutils

這將安裝yes 命令以及其他可能對自動化任務有用的核心實用程式。

要使用它,只需鍵入yes 後跟要輸出的字串即可。例如。

$ yes "Yes, I agree to the terms and conditions"
Yes, I agree to the terms and conditions
Yes, I agree to the terms and conditions
Yes, I agree to the terms and conditions
...

yes 命令將繼續輸出指定的字串,直到使用Ctrl+C中斷。

將“yes”與其他命令一起使用

要將yes 命令與其他命令結合使用,我們可以使用“|”符號將輸出傳遞給所需的命令。例如,要使用“aptget”安裝程式並自動同意提示,我們可以使用以下命令。

$ yes | apt-get install program

這會將字串“yes”傳送到“apt-get”命令,就像使用者鍵入一樣,有效地接受所有提示而無需進一步互動。

注意:請確保使用“|”符號而不是“>”“>>”,因為這些會將輸出重定向到檔案而不是將其傳遞到下一個命令。

將“yes”與 Expect 命令一起使用

在某些情況下,提示可能不像簡單的“是/否”問題那樣簡單。在這些情況下,我們可以使用“expect”實用程式來編寫更復雜的響應。

要使用“expect”,我們首先需要使用以下命令安裝它。

$ sudo apt-get install expect

然後,我們可以使用“expect”命令建立一個指令碼,指定提示和所需的響應,如下所示。

#!/usr/bin/expect -f
spawn program_installer
expect "Do you agree to the terms and conditions?"
send "Yes
" expect "Enter installation path:" send "/opt/program
" expect eof

在此示例中,“spawn”命令執行“program_installer”“expect”命令指定提示和響應。“send”命令將指定的字串傳送到命令,就像使用者鍵入一樣。

在建立“expect”指令碼時,務必確保提示和響應完全匹配,因為任何差異都可能導致指令碼失敗。在將其用於更大規模之前,最好使用少量提示測試指令碼。

總的來說,“expect”是一個強大的工具,用於自動化需要複雜使用者互動的任務,並且可以在 Linux 上安裝程式時節省時間和精力。

故障排除

如果您在使用“yes”或“expect”命令時遇到任何錯誤或意外行為,您可以嘗試一些方法來解決問題。

  • 確保已安裝必要的依賴項。“expect”需要安裝“tcl”包,因此請確保在執行“expect”指令碼之前已安裝此包。

  • 檢查命令和指令碼的語法。確保您使用了正確的標誌和引數,並且沒有錯別字或缺少元素。

  • 檢查您正在安裝的命令或程式的文件。某些程式可能具有需要在指令碼中指定的其他提示或選項。

  • 如果您正在使用“expect”,請確保您指定了正確的提示和響應。您可以使用“expect -d”標誌啟用除錯模式,並更詳細地檢視指令碼的輸出。

牢記這些提示,您應該能夠在 Linux 上安裝程式時成功編寫響應。

結論

在本文中,我們討論瞭如何使用“yes”命令和“expect”實用程式在 Linux 上安裝程式時編寫響應。透過自動化這些任務,我們可以在設定新系統或安裝多個程式時節省時間和精力。

更新於:2023年1月4日

711 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告