shell脚本的 “单引号和双引号”
grep--help|grep-i'\-r'# ✅ 可以grep--help|grep-i"\-r"# ✅ 也可以grep--help|grep-i-r# ✅ 甚至不加引号也行原因是:在这个 pattern 里,\-的反斜线只是为了「转义减号」,但其实 grep 里减号不是特殊字符,所以直接写-r也能匹配。
引号的差异主要体现在shell 展开上:
单引号'...' | 双引号"..." | |
|---|---|---|
变量展开$VAR | ❌ 不展开 | ✅ 展开 |
反斜线\ | 完全保留原样 | 部分有特殊意义 |
| 适合 regex | ✅ 更安全 | ✅ 通常也没问题 |
对于 grep 的 pattern,单引号反而更推荐,因为它完全阻止 shell 干涉,写什么就传什么给 grep,不用担心意外展开。
