【发布时间】:2011-07-08 08:49:07
【问题描述】:
我正在编写一个 curl 调用脚本,您可以通过 STDIN 输入密码和参数(将密码保留在 cmd 行之外)。
我还需要在 STDIN 上发送 POST 数据(大量数据无法放入 cmd 行)。
所以,我可以通过命令行成功地做到这一点:
> curl -K --data-binary @- -other_non-pw_params
> -u "username:password"
> <User types ctrl-d>
> lots_of_post_data
> lots_of_post_data
> <User types ctrl-d>
> <User types ctrl-d>
现在...我正在尝试在 BASH 脚本中执行此操作...
一厢情愿的伪代码:
{ echo '-u "username:password"'
echo <ctrl-d> | cat dev/null | ^D
echo lots_of_post_data
echo lots_of_post_data
} | curl -K --data-binary @- -other_non-pw_params
【问题讨论】:
-
你离得不远了......我认为你需要改变的只是
到正确的转义序列等。你试过了吗? -
不知道我会使用什么转义序列。
-
echo 手册页告诉您它支持哪些转义序列。但我认为 Ignacio 的回答是正确的——Bash 不能“关闭”STDOUT,这正是你所需要的。如果您需要发送 Ctrl-D/EOF,您可能需要比 shell 脚本更复杂的东西。
标签: linux bash shell curl password-protection