unix curl复选标记的含义
unix curl meaning of checkmarks
大家好,我有一个关于 'curl' 解析器如何在 linux 命令行中工作的问题:
我在 jokto-linux-系统上工作,我在其中编写命令行指令:
我想知道带复选标记“...”和不带复选标记的区别是什么。
带有复选标记的命令行:
curl 'http://localhost:80/uri/?$sortby=name' > data.json
没有复选标记的命令行:
curl -i http://localhost:80/uri/?$sortby=name > data.json
带有复选标记的命令返回一个 http 200OK 和 json 格式的排序响应。另一个没有复选标记的命令也给我带来了 200OK 但响应未排序。
我不知道为什么。
感谢反馈
首先,那些被称为单引号,而不是复选标记。这是一个复选标记:✓
Bash 将单引号理解为保护论证文本免受解释。通常,单引号中的任何内容都没有特殊含义,并且将被解释为纯文本。
没有它们,?
和 $
对 bash 有特殊意义:?
参与 "globbing"(扩展文件名以匹配模式,其中 ?
是单个字符的占位符),$
参与变量展开($sortby
会被变量sortby
的值代替)。
?
可能不匹配任何内容,因此将被保留,但是 $sortby
,因为变量可能未定义,将被空字符串替换。最终结果是,在 curl
看到参数之前,如果不加引号,它将被转换,很可能变成 http://localhost:80/uri/?=name
- 不是你想要的。
还有一些字符如果存在的话会使您的命令行更加混乱;例如,!
、&
、括号等。始终引用您的 URI 是个好主意。
复选标记 (✓
) 在 shell 中没有特殊含义。
用单引号 ('
) 引用的字符串,带有具有特殊含义的停止字符(例如 &
不会将脚本置于后台,$
不会启动变量)。
进一步阅读:
- Difference between single and double quotes in Bash
- When to wrap quotes around a shell variable?
感谢您的正确回答。抱歉,我的 googletranslator 将我从 german="Häckchen" 翻译成 english="checkmarks" 而不是引号。但通常我知道这个词。
大家好,我有一个关于 'curl' 解析器如何在 linux 命令行中工作的问题:
我在 jokto-linux-系统上工作,我在其中编写命令行指令:
我想知道带复选标记“...”和不带复选标记的区别是什么。
带有复选标记的命令行:
curl 'http://localhost:80/uri/?$sortby=name' > data.json
没有复选标记的命令行:
curl -i http://localhost:80/uri/?$sortby=name > data.json
带有复选标记的命令返回一个 http 200OK 和 json 格式的排序响应。另一个没有复选标记的命令也给我带来了 200OK 但响应未排序。 我不知道为什么。
感谢反馈
首先,那些被称为单引号,而不是复选标记。这是一个复选标记:✓
Bash 将单引号理解为保护论证文本免受解释。通常,单引号中的任何内容都没有特殊含义,并且将被解释为纯文本。
没有它们,?
和 $
对 bash 有特殊意义:?
参与 "globbing"(扩展文件名以匹配模式,其中 ?
是单个字符的占位符),$
参与变量展开($sortby
会被变量sortby
的值代替)。
?
可能不匹配任何内容,因此将被保留,但是 $sortby
,因为变量可能未定义,将被空字符串替换。最终结果是,在 curl
看到参数之前,如果不加引号,它将被转换,很可能变成 http://localhost:80/uri/?=name
- 不是你想要的。
还有一些字符如果存在的话会使您的命令行更加混乱;例如,!
、&
、括号等。始终引用您的 URI 是个好主意。
复选标记 (✓
) 在 shell 中没有特殊含义。
用单引号 ('
) 引用的字符串,带有具有特殊含义的停止字符(例如 &
不会将脚本置于后台,$
不会启动变量)。
进一步阅读:
- Difference between single and double quotes in Bash
- When to wrap quotes around a shell variable?
感谢您的正确回答。抱歉,我的 googletranslator 将我从 german="Häckchen" 翻译成 english="checkmarks" 而不是引号。但通常我知道这个词。