这是一个检查我当前在这个网站上的 IP 的脚本:http://myip.dnsdynamic.org/并选择响应并调用API来更新我的动态IP。
脚本如下:
curl --user <myusername>:<mypasswd> https://www.dnsdynamic.org/api/?hostname=eventsonmap.ssh22.com&myip=`curl http://myip.dnsdynamic.org/`
当我运行它时一切正常,但命令停止并且没有正常返回,只有当我最后按下它才会起作用,ENTER
或者ctrl+c
我做错了什么?我缺少一个参数?
这个脚本是一个 cronjob,每分钟运行一次,所以我不能按ENTER
更多信息
这里在 pastebin 上,完整的结果是curl -v <same>
这里最后两行:
* Closing connection 0
* SSLv3, TLS alert, Client hello (1):
并在这里阻塞……
答案1
命令中的某些字符是 shell 元字符。您实际上是在后台启动一项任务。
您需要引用您的命令。我已经重新排序了该命令,因为它太丑了。
myip=$(curl "http://myip.dnsdynamic.org/")
curl --user <myusername>:<mypasswd> "https://www.dnsdynamic.org/api/?hostname=eventsonmap.ssh22.com&myip=${myip}"`