前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习Shell笔记记录

学习Shell笔记记录

作者头像
程序手艺人
发布2019-02-21 16:17:16
3940
发布2019-02-21 16:17:16
举报

title: 2017-7-30 shell tags: shell grammar_cjkRuby: true

变量替换

hello="A B  C   D"
echo $hello   # A B C D
echo "$hello" # A B  C   D
# 正如你所看到的:echo $hello和echo "$hello"产生不同的输出。
# 把变量引起来会保留空白字符

  • $hello 变量的引用
  • “$hello” 变量的引用,不会禁止变量变换
  • '$hello ’ 变量变换被禁止,变量名解释为普通的字面意思

变量赋值

  • = 赋值操作符(左右两边不能有空白符)

测试

  • 整数比较
    • -eq 等于 --> equal
      • 例如: if [ “a"−eq"a" -eq "a"−eq"b” ]
    • -ne 不等于 --> not equal
    • -gt 大于 --> great than
    • -ge 大于等于
    • -lt 小于
    • -le 小于等于
    • < 在双括号里使用
      • ((“a&quot;&lt;&quot;a&quot; &lt; &quot;a"<"b”))
    • <=
    • =
  • 字符串比较
    • = 等于
      • if [ “a&quot;=&quot;a&quot; = &quot;a"="b”
    • == 等于 它和=是同义词
    • !=
    • -z 字符串的长度为零
    • -n 字符串的长度不为零

循环和分支

函数

  • 传递参数
    • 函数以位置来引用传递过来的参数,例如$1, $2,依次类推

调试

  1. echo 语句 : 跟踪了解变量值
  2. 使用tee过滤器来检查临界点的进程或数据流
  3. 设置选项 3.1 sh -n scriptname 不会实际运行脚本,而只是检查脚本语法错误,还是有一些语法错误不能检查出来 3.2 sh -v scriptname 实际执行前打印出这个命令 3.3 sh -x scriptname 打印每个命令的执行结果
  4. assert (断言)
  5. 用变量$LINENO 和 内建caller
  6. 捕捉exit
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • title: 2017-7-30 shell tags: shell grammar_cjkRuby: true
    • 变量替换
      • 变量赋值
        • 测试
          • 循环和分支
            • 函数
              • 调试
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档