Bash基础


学习内容来源:Testerhome_霍格沃兹学院


  • shell 定义:
  • 常用shell :bash、sh、zsh

  • bash语言:变量 、逻辑控制、shell环境、脚本应用、自动化

  • 变量定义
    echo 向屏幕输出,$a 应用a这个变量

    1. 变量定义 ‘=’两边不能有空格
    2. 大小写敏感
    3. 变量值中有空格,需要用引号引起来
    4. 在单引号中不能引用变量,需要使用双引号方能将变量引用出来
    5. 变量不需要定义
    6. 引用变量时,使用{}括起来
  • 预定义变量

    1. $PWD
    2. $USER
    3. $HOME
    4. $PATH
  • 数组变量

    1. () 定义数组,a=(1 2 3 4) 元素通过空格来作为间隔,echo${a} 输出数组第一个元素
    2. 如何输出全部数组? echo {a[*]}
    3. 如何获取数组的长度? 使用# 获取数组长度,echo ${#a[*]}
    4. 反引号的使用 ,执行反引号中的命令并将命令执行结果赋给变量 a=(ls),echo {a}
  • 特殊符号的使用

    1. 双引号的内容是字符串,同时也支持变量引用 a='word' echo "hello ${a}"
    2. 单引号的内容是字符串,但不支持变量引用
    3. 反斜线 \,转义字符 echo -e "a\nbb"
    4. “``” 表示命令的输出, 反引号在所有linux操作系统上都支持
    5. $(ls) 表示执行ls的结果,与`` 类似,但是不是所有linux系统都支持
    6. ((a + 1))
    7. (()) 整数扩展,把里面的变量当做整数去处理 a=1 ((a=a+1)) echo ${a}
    8. ({1 . . 10}) 等价于seq 1-10 表示1到10
  • 数字型变量

    1. shell里面不支持浮点数运算 awk 实现浮点数运算 ,示例: awk 'BEGIN{print 2/3}'
  • 字符串操作

    1. 字符串截取,s='hello from testerhome' {s:6:3} 从第六个字符开始截取,保留三个字符
    2. 字符串长度 echo ${ #s }
    3. 字符串替换 ,使用 // 替换 ,第一个斜杠后面是替换内容,第二个斜杠后面是替换后的内容 echo ${s/testerhome/mmm}
    4. 字符串掐头匹配:
      4.1 掐头# echo "{s#o}"
      4.3 掐头## 贪婪匹配: echo "{s%home}"
      4.5 去尾%
      (* 通配符,如果是掐头,在字符前面,去尾则在字符后面) echo "${s%h}"
      4.6 去尾%% 贪婪匹配
  • 布尔变量

    1. ? 判上一条语句是成功还是失败,只有成功值为0 ,非0则上一句语句执行失败 ,示例:a=4;b=6 ((a<b)) echo?
  • 判断的类型

    1. 字符串判断
    2. 逻辑判断,条件:if;分支:case;循环:for、while、untile select ;&& ||;break continue
    3. shell 内置判断,-e file 如果文件存在,则结果为真;-d file 如果文件是一个子目录,则结果为真; -f file 如果文件是一个普通文件,则结果为真;-r file 如果文件可读,则结果为真; -s file如果文件长度不为0,则结果为真; -w file 如果文件可写,则结果为真;-x file如果文件可执行,则结果为真。
    4. 算术判断:
      4.1 eq 等于、ne 不等、gt 大于、ge大于等于、lt小于、le小于等于;算术比较,如= 、>=等
      4.2 判断内容 一定要在[]中进行,且比较数值与[]前后要有空格 [ 2 -eq 2 ]; echo $?
      4.3 -a 逻辑与 && ,-o 逻辑或 ||
  • 常用命令:

    1. which,查找某个命令在什么位置,仅限在PATH路径中的内容
    2. touch,创建文件
    3. ls,打印当前目录下的所有内容
    4. Ctrl+C 退出程序

你可能感兴趣的:(Bash基础)