# remove all processes by port
# like killport 8000
killport() {
kill `lsof -t -i:$1`
}
然而,当我试图运行命令时,我得到了这个
killport 8000
killport:kill:2: not enough arguments
答案 0 :(得分:2)
尝试:
killport() {
local port=$(lsof -t -i:"$1")
[[ -n $port ]] && kill $port
}
你的问题是,如果lsof -t -i:$1
没有输出任何东西 - 因为没有碰巧在指定端口监听 - kill
内置接收无参数,导致它抱怨。
使用上面的解决方案,如果指定的端口未被使用,则会有无输出,但退出代码 - 如$?
所示 - 将为{{1} }。