linux shell 中双方引号和单方引号的区别
通常更推荐使用双方引号。
001、双方引号可以避免变量的单词分割
[root@pc1 test1]# str1="aa bb" ## 测试字符串 [root@pc1 test1]# if [[ $str1 == "aa bb" ]]; then echo "yes"; fi ## 双边引号不用担心变量的单词分割 yes [root@pc1 test1]# if [ $str1 == "aa bb" ]; then echo "yes"; fi ## 单边引号发生单词分割 -bash: [: too many arguments [root@pc1 test1]# if [ "$str1" == "aa bb" ]; then echo "yes"; fi ## 单边引号如果想避免单词分割,需要使用双引号 yes
002、双边引号支持高级正则表达; 单边引号不支持
[root@pc1 test1]# if [[ aabb == aab? ]]; then echo "yes"; fi ## 双边引号支持高级正则表达 yes [root@pc1 test1]# if [ aabb == aab? ]; then echo "yes"; fi ## 单边引号不支持高级正则表达
003、双边括号内支持逻辑运算; 单边括号内不支持逻辑运算
[root@pc1 test1]# if [[ 5 -gt 3 && 5 -gt 2 ]]; then echo "yes"; fi ## 双边括号支持括号内逻辑判断 yes [root@pc1 test1]# if [ 5 -gt 3 && 5 -gt 2 ]; then echo "yes"; fi ## 单边引号不支持 -bash: [: missing `]' [root@pc1 test1]# if [ 5 -gt 3 ] && [ 5 -gt 2 ]; then echo "yes"; fi ## 单边引号的逻辑判断需要每次都写一遍单边引号 yes
。
reference:
01、https://mp.weixin.qq.com/s?__biz=Mzg4ODA5NDEwNw==&mid=2247484460&idx=1&sn=3b8cfb3b7abae5786fedc566af8b8ca3&chksm=cf8128d8f8f6a1ce418bd57279b5f77229109a0b4a20cb8ac98d486a3fcf0dd92194114dd745&mpshare=1&scene=23&srcid=0218Bdmvr3i7C9I12KcBQL4F&sharer_shareinfo=80bc41709169b59aedebe9057c0d1b09&sharer_shareinfo_first=80bc41709169b59aedebe9057c0d1b09#rd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律