Linux Shell编程及自动化运维实现 第1章 变量

Linux Shell编程及自动化运维实现 第1章 变量

一、shell的概念

 Shell是用户与Linux内核进行交互操作的一种接口,目前最流行的shell称为bash Shell

   Shell是解释执行的脚本语言,所谓脚本语言就是不用编译就可以直接执行的语言。在shell中可以调用Linux系统命令。

   Linux中的shell有:

     /bin/bash

     sh shell

     Bourne Shell

     C Shell

     Korn  Shell

shell多种执行方式:

              Bash  1.sh

              Sh    2.sh

                .    4.sh

               Source 3.sh

二、变量

  什么是变量?

     用一个固定的字符串去表示不固定的内容,便于修改

  1. 变量的类型
  1. 自定义变量

    自定义变量(示例:ping01.sh引入变量)

定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115

引用变量: $变量名 或 ${变量名}

查看变量: echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)

取消变量: unset 变量名

作用范围: 仅在当前shell中有效

  1. 显示赋值

          变量名=变量值

示例:

ip1=192.168.1.251

school="BeiJing 1000phone"

today1=`date +%F`

today2=$(date +%F

          b)read 从键盘读入变量值

           read 变量名

read -p "提示信息: " 变量名

read -t 5 -p "提示信息: " 变量名 //-t 等待5秒,后超时

read -n 2 变量名 //-n  只记录几个字符

 

read -p "请输入您测试的IP地址:" ip

 

ping -c1 $ip   &>/dev/null  && echo   " $ip up" || echo   "$ip

          down"

~        

  1. 环境变量

 

定义环境变量: 方法一 export back_dir2=/home/backup

方法二 export back_dir1 将自定义变量转换成环境变量

引用环境变量: $变量名 或 ${变量名}

查看环境变量: echo $变量名 env 例如env |grep back_dir2

取消环境变量: unset 变量名

变量作用范围: 在当前shell和子shell有效 !!!!!!!!!!!!!!!!!!!!!!!

  1. 环境变量

 

  1. 整数运算

+       加

-       减

\*      乘

/       除

%      取余

方法一:expr

       expr 1 + 2

expr $num1 + $num2 + - \* / % 

方法二:$(())

        echo $(($num1+$num2)) + - * / %

echo $((num1+num2))

echo $((5-3*2))

echo $(((5-3)*2))

echo $((2**3)) //(蜜)2的3次方

sum=$((1+2)); echo $sum

方法三:$[]

echo $[5+2] + - * / %

echo $[5**2]

方法四:let

        let sum=2+3; echo $sum

let i++; echo $i

  1. 小数运算

        ho "2*4" |bc

echo "2^4" |bc

echo "scale=2;6/4" |bc

awk 'BEGIN{print 1/2}'

echo "print 5.0/2" |python

解释:

bc:交互运算器

scale=2  保留小数点后面两位

awk和python做了解