Bash中含空格的命名参数正确引号引用方式
Bash中带空格的命名参数引号使用方式
你列的两种写法都是正确的,最终执行效果完全一致。
Bash处理命令行时,引号的作用只是标记词边界、阻止空格触发单词拆分、转义特殊字符,引号本身不会作为参数内容传递给你调用的命令,所以只要引号覆盖了所有带空格的内容,不管是只包参数值,还是把整个参数名=参数值串全包上,最终传给命令的参数内容完全相同:
- 第一种写法
command --argument="long value":引号只包裹等号后面的参数值部分,Bash解析后会把--argument=long value作为单个参数传给命令,空格不会被当成分隔符把内容拆成多个参数。 - 第二种写法
command "--argument=long value":引号包裹完整的参数名加参数值整段内容,Bash同样会把整段识别为单个参数,传给命令的字符串和第一种写法没有任何区别。
避坑提醒:不要在等号两边加空格,比如写成
command --argument = "long value"是完全错误的。这种写法会让Bash把--argument、=、long value拆成三个独立参数传递,几乎所有常规的命令行参数解析器都识别不了这种格式。
两种写法选哪个全看个人习惯,其中--argument="long value"的写法能直观看出哪部分是参数名、哪部分是传入的值,可读性更好,是日常更常用的写法。
内容的提问来源于stack exchange,提问作者HubertNNN
相关产品推荐
相关产品推荐

