CGI 脚本,使用终端 (OS X) 将 `printf` 保存到文件

Posted

技术标签:

【中文标题】CGI 脚本,使用终端 (OS X) 将 `printf` 保存到文件【英文标题】:CGI script, save `printf` to file using Terminal (OS X) 【发布时间】:2013-02-07 22:16:44 【问题描述】:

我之前向question 询问了如何使用您自己的本地服务器(在 OS X 上)读取POST request

现在我的问题是我无法保存在我的服务器上收到的 POST 数据。

我目前使用while true; do nc -l 10000 < /dev/null ; printf '\n\n\n'; done 来接收和显示从我的ios 设备发送的POST 消息,它运行良好。

但是如何保存printf 输出?

我尝试使用本地 .sh 文件并使用以下代码发送 POST Request(没有成功):

#!/bin/sh

printf 'Content-type: text/plain\r\n\r\n'
cat > /MYPATH/post-data
echo OK

我也尝试直接从终端保存文件(也没有成功):

while true; do nc -l 10000 < /dev/null ; printf 'Content-type: text/plain\r\n\r\n' >> /MYPATH/post-data echo OK; done

但是,我在终端中使用的代码实际上创建了 post-data 文件,但只有 Content-type: text/plain 文本,而不是实际的 POST(终端显示了帖子)。

今晚我需要这个答案,所以如果你能帮助我解决这个问题,我将不胜感激。

基本综述:我想将包含 POST 请求数据的 printf 保存到文件中。

【问题讨论】:

【参考方案1】:

我相信你想要这个:

while true; do (printf 'Content-type: text/plain\r\n\r\n'; nc -l 10000 < /dev/null) >> /MYPATH/post-data; echo OK; done

不确定您希望 Content-type 在哪一侧...

【讨论】:

以上是关于CGI 脚本,使用终端 (OS X) 将 `printf` 保存到文件的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式批量重命名 OS X 终端中的文件

Lighttpd cgi python无法运行系统进程

用于 MobileConfig 文件的 OS X 终端中的 XML 解析

如何在 OS X 上将进程窗口置于前台?

python3.x搭建简单CGI服务器时cgi-bin下的脚本无法被解释执行

如何在 Mac OS X 的终端中清除以前的输出?