shell - 接收 URL 作为 shell 脚本的参数时,如何在不使用引号的情况下绕过与号 (&)?
问题描述
我正在构建一个 shell 脚本(试图符合 POSIX),但我遇到了一个问题。该脚本应该接收一个 URL 并对其内容做一些事情。
myscript www.pudim.com.br/?&args=ok
www.pudim.com.br/?
问题是,&符号被解释为命令添加剂,并且仅将部分作为参数提供给我的脚本。
我知道正确的解决方法是用引号括住 URL,但是因为我需要连续多次使用这个脚本,所以我想粘贴 URL 而不必每次都用引号括起来。
有什么方法可以绕过 & 符号来获取完整的 URL 参数吗?
解决方案
完整网址的报价
将 URL 用引号括起来是您唯一的机会。请参阅流行的 shell 实用程序curl,因为它说明了它的核心参数 URL:
从命令行提示符调用时使用 [] 或 {} 序列时,您可能必须将完整的 URL 放在双引号内以避免 shell 干扰它。这也适用于其他特殊处理的字符,例如“&”、“?” 和 '*'。
用于指定查询参数的额外参数
您还可以将查询参数(键值对)作为单独的参数传递。所以你可以绕过&
作为分隔符。查看curl的-F
选项:
-F, --form <名称=内容>
从 STDIN 读取 URL
如果您的脚本允许用户交互,您可以从未解释的输入源中获取未read
转义的URL(包括元字符as )。&
请参阅本教程。
推荐阅读
- image - 如何在 SageMath 中编辑彩色图像的像素值?
- java - 如何使用条件条件在 Hibernate 5 CriteriaBuilder 中获取计数
- spring-boot - 使用camel ftp从子文件夹中读取文件
- jquery - 将对象推入Jquery后数组为空
- oracle - 我如何处理 ORA-00917 错误异常块
- angular - NgRx 效果 - 映射操作以进行顺序服务调用和更新存储
- ios - 在后台下载图像
- javascript - 使用javascript替换特定位置的所有空格
- python - Python3字节编码
- angular - 在 Angular 5 中使用 Nativescript 的环境变量