栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Shell Programming的一些常见问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell Programming的一些常见问题

引号
  • 单引号 v.s. 双引号
    单引号不进行变量替换,双引号会进行变量替换

  • 变量是否加引号
    一个保险的做法是变量总是加引号, 因为变量的值有可能带空格
    [[ ]]内会把变量替换后的值当成一个整体,但[ ]不会

[ ] 和 [[ ]]
  • [ 等于 test, 是一个程序,会把] 当成参数列表里最后一个参数
  • [[ ]] 是bash specific的,是bash关键字。
  • [ -f “a.txt” ] && [ -f "b.txt ] 中的&&是连接两个命令的运算符;[[ -f “a.txt” && -f “b.txt” ]] 中的&&是逻辑运算符
  • [[ ]] 内变量替换后如有空格也会被当成一个整体
  • [[ ]] 内() 和 >, < 不用转义,而[ ]内需要,因为[ 是命令,< 对于它来说是重定向符号
    []和[[]]的区别
比较运算符
  • 对于数值比较(把123当成值而不是当成字符串),不管是[ ] 还是 [[ ]] 一律是 -eq -lt, -gt这一套;在(( ))里,和C语言一致。
  • 在[ ] 和 [[ ]] 里,<, >, =,== 都是字符串比较; ==是bash specific,=是shell标准
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号