我已閱讀以下答案這個帖子但它似乎對我的問題不起作用。
我正在透過 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