
Was ich habe:
alias killport='sudo kill -9 `sudo fuser -n tcp $1 2> /dev/null`'
Problem:
Das Ausführen von eg killport 8000
scheint jedoch nicht zu funktionieren. Das einfache Ausführen von ...
sudo kill -9 `sudo fuser -n tcp 8000 2> /dev/null`
... FUNKTIONIERT. Ich kann nicht herausfinden, wo ich einen Fehler mache.
Der größte Unterschied zwischen der funktionierenden und der nicht funktionierenden Version besteht meines Erachtens darin, dass die Alias-Version eine Variable beinhaltet und von der Shell für mich ausgeführt wird … Aber vielleicht hat jemand dieses Problem schon einmal gesehen und weiß, wo er suchen muss.
Antwort1
Sie sollten anstelle eines Alias eine Funktion verwenden, da Aliase keine Parameter unterstützen. Machen Sie etwa Folgendes:
killport(){
sudo kill -9 $(sudo fuser -n tcp $1 2> /dev/null);
}
Fügen Sie diese Funktion nun in Ihre Bash-Konfigurationsdatei ein, z. B. ~/.bashrc, und führen Sie dann Folgendes aus:
source ~/.bashrc
Und du bist fertig
HTH