Может кто-то проверять то, что я делаю неправильно здесь:
killp() {sudo kill $(sudo lsof -t -i:"$@"); l; }
Я хочу обобщить этот случай к любому порту.
sudo kill $(sudo lsof -t -i:22)
Я также просто понял это. отчасти. Работы.
killp() {sudo kill $(sudo lsof -t -i:"$@")}
у меня был пользовательский псевдоним для l
(alias l="LC_COLLATE=C ls -gAG -x -1 --group-directories-first --sort=extension"
), который является ненужным здесь.
"$@"
расширяется до всех параметров функции, как отдельные слова. killp 22 33
затем расширился бы до ...lsof -t -i:22 33
, который может или не может быть тем, что Вы хотите. Если это не, просто используйте "$1"
вместо этого, чтобы только взять первый аргумент.
Что-то как -sTCP:LISTEN
могло бы быть полезным здесь также, если Вы только хотите закрыть слушающий (сервер) порт и не исходящие соединения.
Что-то вроде этого,
killp () {
sudo kill `lsof -t -i:$*`
}