如何建立別名來終止 TCP/IP 連接埠上執行的進程?

如何建立別名來終止 TCP/IP 連接埠上執行的進程?

我擁有的:

alias killport='sudo kill -9 `sudo fuser -n tcp $1 2> /dev/null`'

問題:

不過,運行egkillport 8000似乎不起作用。然而,簡單地運行...

sudo kill -9 `sudo fuser -n tcp 8000 2> /dev/null` 

....確實有效。我不明白我哪裡搞砸了。

據我所知,工作版本和非工作版本之間的主要區別是別名版本涉及一個變量,並由 shell 為我執行......但也許有人以前見過這種問題並且知道就在哪裡看。

答案1

您應該使用函數而不是別名,因為別名不支援參數,請進行類似的操作:

killport(){ 

sudo kill -9 $(sudo fuser -n tcp $1 2> /dev/null);

}

現在將此函數放入 bash 設定檔中,例如 ~/.bashrc,然後執行:

source  ~/.bashrc

你就完成了

華泰

相關內容