目前我正在学习 SSH 创建和监听服务器。但我仍然倾向于做错很多事,之后我的端口仍然打开。所以我正在编写一个 bash 脚本来杀死它,但是我有一个无法解决的错误。
剧本:
#!/bin/bash
pid=$(lsof -i:22 -t);set -f;a=(${pid})
for e in ${a[@]}
do
echo $e
kill $e || kill -9 $e
done
行为
@echo $e
壳给出正确的PID
但是当我lsoif -i:22 -t
在脚本运行时执行PID仍然打开。
我错过了什么?
既然你愿意用-9
旗子杀人,请替换:
kill $e || kill -9 $e
和
kill -9 $e
command1 || command2
当且仅当 command1 返回非零退出状态时才执行 command2。换句话说,成功运行 command1 或运行 command2。
如果是
kill $e || kill -9 $e
第一个命令 ( kill $e
) 没有失败(因为 pid 有效),因此没有执行第二个命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句