如何使用文件中存储的URL字符串正确执行curl请求
问题原因
你之前使用的curl $testing.txt写法无法生效,核心原因是shell会将$后的字符串识别为自定义变量名,并不会主动读取testing.txt文件内存储的内容,自然无法正确发起请求。
正确操作方法
你可以选择以下任意一种方式完成请求:
- 命令替换写法(最通用,兼容绝大多数shell环境)
直接在终端执行以下命令即可:
命令执行逻辑:优先执行curl $(cat testing.txt)cat testing.txt读取文件内存储的example.com字符串,再将读取到的地址作为参数传递给curl发起请求,执行完成后终端会直接输出example.com默认页面的完整HTML源码。
如果使用较老版本的shell,也可以用反引号包裹命令实现相同效果:curl `cat testing.txt` - 兼容文件存在多余空白字符的写法
如果你的testing.txt里存储的URL首尾存在换行、空格等多余空白字符,可以用下面的命令先清理无效字符再发起请求,避免curl解析地址失败:curl $(tr -d '\n\r ' < testing.txt)
注意事项
- 执行命令前请确认当前终端的工作路径和
testing.txt的存放路径一致,如果文件不在当前目录,需要补全文件的完整路径,例如curl $(cat /home/user/testing.txt) - 如果文件内存储的域名没有带
https://或http://前缀,curl默认会使用http协议发起请求,若站点强制HTTPS,你可以直接把文件内的内容修改为https://example.com避免访问异常 - 如果执行后返回的是3xx跳转响应头而非完整页面源码,可以给curl加上
-L参数让它自动跟随重定向,命令改为curl -L $(cat testing.txt)即可拿到最终的页面完整HTML源码。
内容的提问来源于stack exchange,提问作者luffy92
相关产品推荐
相关产品推荐

