bash语法及脚本编写

1、bash变量命名规则:

image.png

  • 系统定义好的变量:
    image.png

2、变量的定义:

  1. name="chen" // 定义字符串###
  2. echo $name // 调用变量###
  3. a=3 readonly a //将a设置为只读变量,只读变量无法修改也无法删除###
  4. unset a // 删除a变量
  • 变量类型:
    image.png

  • 数组操作:
    image.png

3、if语句:

格式:
if condition2; then command1; elif condition2; then command 2…fi
比较运算符:
-eq表示==;-lt表示<;-gt表示>;在if判断语句中会用</>需要用两个中 括号括起来:if[[5>2]]; 使用-lt、-gt、-eq、==只用一个中括号

例句:

  1. if [ $a -eq $b ]; then echo "equal";elif [ $a -gt $b ]; then echo "bigger";elif [ $a -lt $b ]; then echo "little";fi
  • 字符串比较:
    image.png

  • 逻辑判断:
    image.png

4、for语句:

格式:
for loop in 1,2,3,4,5 ; do command;done
例句:从文本中读取内容,并吧内容循环打出来

  1. for i in $(cat test);do echo $i;done

5、while语句

image.png

例句:从文本中读取内容,并吧内容循环打出来

  1. while read line;do echo $line;done<test

for和while读取文件的不同 asdb abc 如果单行内容中存在空格 for会将其读取成两行 while按照文本原本形式读取

6、算术运算符

image.png

image.png

image.png

整数运算可以用((i+x))形式进行运算

  1. i=1
  2. ((i=i+1));echo $i
  • 浮点数计算:
    image.png

7、read:从标准输入读取输入内容并赋值给指定变量

一个变量对应一个值,可以进行多遍了赋值,如果不声明变量默认复制给REPLY变量

image.png

8、统计内存

  1. for i in `ps aux | awk'{print $6}' |grep -v 'RSS'`
  2. count=$[$count+$i]
  3. echo "$count/kb"

9、脚本参数传递

image.png
image.png

  • 参数表达式含义:
  1. $0:脚本文件名称
  2. $1:第一个参数
  3. $n:第n个参数
  4. $#:传递参数的个数
  5. $@:所有参数
  6. $$:脚本运行的当前进程ID
  7. $\:以一个单字符串显示所有向脚本传递的参数(所有参数)
  8. $?:显示最好命令的退出状态。0表示没有错误,其他任何值表明有错误

10、再bash脚本中可对文件进行操作

image.png

11、特殊符号的使用

image.png

  1. #!/bin/bash
  2. for arg in "$*"
  3. do
  4. server_ip=$(kubectl get pods -n pmc -owide |grep $arg | awk '{print $6}')
  5. echo $server_ip
  6. done