Shell脚本

Shell脚本
(打印带颜色的:echo -e "\033[32m------------------------\033[1m")
``:执行命令

1、固定格式:
  脚本第一行:#!/bin/bash
  脚本第二行:# 简介功能
  脚本第三行:# 作者

 

2、引用变量:$(变量名和等号之间不能有空格:name="zhangsan")
  $n:第几个变量
  $* 与 $@ :所有变量
  $* 与 $@ 区别:
    相同点:都是引用所有参数。
    不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)
  $?:命令执行是否正确
  $#:共有几个变量

 

3、if条件语句
  格式:
    if (表达式)
      语句一
    else
      语句二
    fi
  if判断大小:
    num1=100
    num2=200
    if (($num1 > $num2));then
      echo "num1 > num2"
    fi

 

4、常用逻辑运算符解析(使用中括号两边加空格)
  -f:判断文件是否存在 eg: if [ -f filename ];then
  -d:判断目录是否存在 eg: if [ -d dir ];then
  -eq : 等于 -ne : 不等于 -lt : 小于 -gt : 大于 -le : 小于或等于 -ge : 大于或等于 -a : 双方都成立(and) -o : 单方成立(or) -z : 空字符串

 

5、for循环格式
  for 变量 in 字符串
  do
    语句一
  done

 

6、case语句
  case 变量 in
    情况1)
    语句1
    ;;
    情况2)
    语句2
    ;;
    *   )
    其他情况
    ;;
  esac

 

7、select 选择语句(一般用于选择菜单的创建,可以配合使用PS3(固定变量)来做菜单的打印输出信息)
  PS3="What do you like most of the open source system?"
  select i in CentOS RedHat Ubuntu
  do
    echo "Your Select System is : " $i
  Done

 

8、shell编程函数
  function 函数名 () {
    command1
    ……
  }

 

9、Shell 数组:bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
  定义数组:在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 ... 值n)
  读取数组:${数组名[下标]}
  获取数组的长度: length=${#array_name[@]}

10、sed(在不打开文件的情况下添加或替换内容)Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。
  sed -i 's/192/10/g' text.sh (把所有192替换为10,不加-i是预修改,加-i 是真实修改)
  sed 's/^/&id /g' text.sh (把每行开头添加"id ")
  sed '/hello/a #####' (在hello的下一行添加#####,/i 是在hello的上一行添加#####)
  sed -n '/hello/p'
  cat number.txt | sed 's/ /\n/g' | grep -v "^$" | sort -nr | sed -n '1p;$p' 输出最大和最小值(把空格换成换行,-v 去除,-nr 从大到小排序,-n 打印)

 

posted @ 2018-08-22 15:50  小驳客  阅读(128)  评论(0)    收藏  举报