Shell Programming的一些常见问题

Shell Programming的一些常见问题,第1张

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标准

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5671047.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存