【发布时间】:2021-03-18 09:54:41
【问题描述】:
我的脚本使用 cURL 处理浏览器自动化。我需要发布用户输入用户名。我可以通过像这样对 username 进行硬编码来做到这一点:
# sid -> session Id
# eid -> element Id (input box here)
curl -d '{"value":["username"]}' http://localhost:9515/session/$sid/element/$eid/value
这成功发布用户名,但我想read用户名并将其传递给值。
我试过了:
read userName
curl -d '{"value":[$userName]}' http://localhost:9515/session/$sid/element/$eid/value
这给了我“缺少命令参数”错误。只传递 $userName 而不是 [$userName] 给出“无效参数:‘值’必须是一个列表”
在这种情况下,如何将变量(用户名)传递给 curl POST 请求?
【问题讨论】:
-
(1) 单引号块参数扩展发生; (2) 为什么你现在的用户名周围有括号,而在命令的原始版本中你没有?
-
@user1934428,我不明白你在 (1) 中所说的内容。我已按照 (2) 中的说明进行了更改。谢谢。
-
如果有单引号,里面不会发生参数扩展。因此,
' ... $userName'不会扩展 `userName.