bash 学习笔记

学习资料来自于 https://wangdoc.com/bash/grammar.html
下列按原章节名称记录

1 简介

2 基本语法

  • echo -n 取消末尾的回车 -e 会解释 这种,否则直接打印
  • ls -是短参数 --是长参数

3 模式拓展

略读, 主要是一些正则和小技巧,难记

$ echo {a..c}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3

4 引号和转义

  • 单引号用于保留字符的字面含义,各种特殊字符在单引号里面,都会变为普通字符,比如星号(*)、美元符号($)、反斜杠()等。
  • 双引号: 三个特殊字符除外:美元符号($)、反引号(`)和反斜杠()。这三个字符在双引号之中,依然有特殊含义,会被 Bash 自动扩展。
  • 双引号的另一个常见的使用场合是,文件名包含空格。这时就必须使用双引号(或单引号),将文件名放在里面。
  • 双引号会原样保存多余的空格。
  • 双引号还有一个作用,就是保存原始命令的输出格式。如echo "$(cal)"

5 变量

  • 等号左边是变量名,右边是变量句号。等号两边不能有空格
  • 事实上,读取变量的语法(foo,可以看作是){foo}的简写形式。
  • 如果变量的值本身也是变量,可以使用${!varname}的语法,读取最终的值。
  • 特殊变量:
    (1)$?为上一个命令的退出码,用来判断上一个命令是否执行成功。返回值是0,表示上一个命令执行成功;如果是非零,上一个命令执行失败。
    (2)$$为当前 Shell 的进程 ID。
    (3)$_为上一个命令的最后一个参数。
    (4)$!为最近一个后台执行的异步命令的进程 ID。
    (5)$0为当前 Shell 的名称(在命令行直接执行时)或者脚本名(在脚本中执行时)。
    (6)$-为当前 Shell 的启动参数。
    (7)$#表示脚本的参数数量,$@表示脚本的参数值,参见脚本一章。












种一棵树最好的时间是十年前,其次是现在。
原文地址:https://www.cnblogs.com/islch/p/15404792.html