安裝軟體包後 apt-get 退出 bash 腳本

安裝軟體包後 apt-get 退出 bash 腳本

我已閱讀以下答案這個帖子但它似乎對我的問題不起作用。

我正在透過 wget 的 stdin 執行 bash 腳本:

wget -O - http://serverip/subfolder/script | sudo bash

我嘗試過使用apt-get -y --force-yes install <packages..> || true,但如果列出的腳本是由 apt-get 安裝的,它仍然會退出腳本。

如果已安裝所有列出的軟體包,它不會退出腳本。

apt-get upgrade如果我有一個並且它安裝了軟體包,也會發生同樣的事情。它將退出腳本。

我有另一組腳本,似乎有效。在這種情況下,安裝腳本只是一個存根,用於下載、執行腳本,bash <scriptname>然後刪除腳本。腳本本身將透過 sudo 來提升其權限。 apt-get在這裡按預期工作。

任何有關如何防止apt-get終止腳本的見解將不勝感激。

答案1

我希望人們停止這樣做:wget | bash。這很愚蠢,並且會產生像這裡這樣的意想不到的效果。您有 bash,因此請利用它的功能。特別是,過程替換:

bash <(wget -O - http://serverip/subfolder/script)

答案2

您可能只需要停止apt-get貪婪地讀取標準輸入。透過將 stdin 重新導向到/dev/null一個傳回 eof 進行讀取的檔案來完成此操作。例如:

apt-get -y --force-yes install ... </dev/null

相關內容