Curl 复选标记的含义

Curl 复选标记的含义,curl,embedded-linux,command-line-arguments,Curl,Embedded Linux,Command Line Arguments,大家好,我有一个关于“curl”解析器在linux命令行中如何工作的问题: 我在jokto linux系统上工作,在那里我编写命令行指令: 我想知道有复选标记和没有复选标记有什么区别 带有复选标记的命令行: curl'?$sortby=name'>data.json 不带复选标记的命令行: curl-i?$sortby=name>data.json 带有复选标记的命令将返回http 200OK和json格式的排序响应。另一个没有复选标记的命令也为我带来了200OK,但响应是未排序的。 我不知道为

大家好,我有一个关于“curl”解析器在linux命令行中如何工作的问题:

我在jokto linux系统上工作,在那里我编写命令行指令:

我想知道有复选标记和没有复选标记有什么区别

带有复选标记的命令行:

curl'?$sortby=name'>data.json

不带复选标记的命令行:

curl-i?$sortby=name>data.json

带有复选标记的命令将返回http 200OK和json格式的排序响应。另一个没有复选标记的命令也为我带来了200OK,但响应是未排序的。 我不知道为什么


感谢您的反馈

首先,这些被称为单引号,而不是复选标记。这是一个复选标记:✓

Bash将单引号理解为保护论点的文本不受解释的影响。通常,单引号中的任何内容都不会有特殊含义,并且会被解释为纯文本

没有它们,
$
对bash有特殊意义:
参与“全局绑定”(扩展文件名以匹配模式,其中
是单个字符的占位符),而
$
参与变量扩展(
$sortby
将被变量
sortby
的值替换)

可能与任何内容都不匹配,因此将被单独保留,但是
$sortby
由于变量可能未定义,将被空字符串替换。最终结果是在
curl
看到参数之前,如果未引用,它将被转换,很可能变成
http://localhost:80/uri/?=name
-不是wh只要你愿意

如果有更多的字符出现,会使命令行更加混乱;例如,
&
、括号等。最好总是引用URI。

复选标记(
)在shell中没有特殊意义

用单引号(
)引用的字符串,其停止字符具有特殊含义(例如,
&
不会将脚本置于后台,
$
不会启动变量)

进一步阅读:


    • 谢谢你的正确答案。很抱歉,我的谷歌翻译将我从德语=“Häckchen”翻译成英语=“checkmarks”,而不是引号。但通常我知道这个词