【发布时间】:2013-03-08 02:14:39
【问题描述】:
我在 bash 中运行这个查询:
mkfifo resp
while true; do
sudo nc -l -p 80 < resp |
(cat & echo -e "HTTP/1.1 200 OK\r\n\r\nhello :)" > resp) ||
break;
done
但是当我 Ctrl+C 时,什么都没有发生,并且终端锁定了。
为什么?我做错了什么?
【问题讨论】:
-
不确定是否相关,但您要么需要用反斜杠结束循环体的前两行,要么将管道/或运算符移动到上一行的末尾。目前,您有 3 个单独的以换行符结尾的命令,而不是包含管道和
break命令的列表。 -
nc可以使用-l或-p,但不能同时使用两者。你能描述一下这个程序应该做什么吗? -
@chepner 这完全取决于 nc/netcat 的风格(BSD 与 linux)。经常需要相反的情况
-
我在 Linux 和 BSD (Mac OS X) 系统的手册页中都看到了禁令。