
範例:add-apt-repository
進程終止後,立即運行apt-get update
- 無需手動輸入命令。
有沒有辦法做到這一點?是否可以在不使用密碼的情況下設定這樣的組合sudo
? (雖然我不介意哪一種)
我要問以下問題:如何將兩個命令連結在一起,以便每當我執行特定命令時,它總是之後執行連結的命令?
答案1
和平常一樣,
sudo bash -c "command1; command2"
如果您只想在命令 1 成功完成後才執行命令 2,則可以使用 as&&
而不是;
。
sudo bash -c "command1 && command2"
我將使用以下命令作為您的範例。
sudo bash -c "add-apt-repository <repo> && apt-get update"
答案2
使用別名或簡單的 bash 函數會遇到各種問題,但您可以為命令編寫一個小包裝器並將其貼/usr/local/bin
在路徑中優先的位置。
這是一個建立腳本並同時對其進行 chmod 的小技巧。
它將轉儲一個可執行的包裝腳本/usr/local/bin/add-apt-repository
。
sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF'
#!/bin/sh
/usr/bin/add-apt-repository "$@"
apt-get update
EOF
要扭轉這種情況,只需刪除/usr/local/bin/add-apt-repository
.
如果您想做一些更果斷的事情(例如鏈接apt-get install
,apt-get update
因此您總是在安裝之前進行更新),我們只需要擴展腳本來查看參數。
sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF'
#!/bin/sh
if [ "$1" = "install" ] ; then
/usr/bin/apt-get update
fi
/usr/bin/apt-get "$@"
EOF
儘管考慮到這會在之前運行更新每一個 apt-get install
稱呼。這聽起來可能很有幫助,但在實踐中可能非常乏味。
答案3
要以特定順序執行某些命令,需要使用 shell 腳本。您所要做的就是 - 按Ctrl+ Alt+打開終端機T
並按照步驟操作 -
1. 鍵入gedit filename.sh
2. 輸入此命令後,將打開一個文字編輯器,您可以在其中每行鍵入所需的命令。例如,sudo add-apt-repository
apt-get update
3. 輸入所有指令後,使用 GUI 或按Ctrl+S和Ctrl+儲存並退出Q。
4. 現在您將返回終端。在終端機上運行sh filename.sh
,只要您的命令沒有錯誤,您的命令就會執行。
另外,如果您從超級使用者帳戶(root)登錄,則無需輸入sudo
命令。
答案4
最簡單的方法是運行:
sudo add-apt-repository <ppa_name> && sudo apt-get update
如果第一個命令成功完成,則將執行第二個命令。