我在 bash 脚本中使用 netcat 作为伪服务器,以便从输入的输入中运行其他 bash 脚本。这是一个令人愉快的副项目,但我似乎陷入了困境。
本质上,脚本和代码运行完美,但直到服务器完成进程后才会显示输出;由于这可能是一个 40 小时的过程,因此不希望让客户端始终显示加载屏幕并且没有提示。
简单地说,我想根据内容加载一个页面,忽略后面所有内容的输出。我到目前为止的代码如下:
#!/bin/bash
while [ $? -eq 0 ]; do
nc -vlp 8080 -c'(
r=read
$r a b c
z=$r
while [ ${#z} -gt 2]; do
$r z
done
f=`echo $b|sed "s/[^a-z0-9_.-]//gi"`
o="HTTP/1.0 200 OK\r\n"
c="Content"
if [ -z "$f" ]; then
f="index.html"
echo "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`"
echo
cat $f
elif [ "$f"==Encrypt ]; then
echo $o
echo
echo $(bash ~/webSupport.sh currentEncrypt "$b")
bash ~/webSupport.sh pullVars "$b" &
else
echo -e "HTTP/1.0 404 Not Found\n\n404\n"
fi
)'
done
我已经四处搜索,找不到任何绕过它的方法,任何帮助将不胜感激。