shell编程及自动化运维

一、变量

1、SHELL执行方式

  1. vim file1
    echo “hello 2020”
    read -p “请输入您的姓名:” name
    echo “哈哈 $name 是大笨蛋”
  2. bash file1
  3. sh file1 // bash和sh执行同一个文件
  4. . file1
  5. source file1 //同理
  6. 多种执行方式的区别
  • bash和sh是子shell ,执行程序之后不改变当前状况,不变更路径
  • ./ 和 source 是本shell

2、变量

(1)自定义变量

  1. 定义变量: 变量名=变量值
  • name=“666” //分号可加可不加

    echo $nam

  1. 引用变量: $变量名不能以数字开头、等号左右两侧不能有空格、变量的值如果有空格,必须用引号包含

  2. 查看变量: echo $变量名

  3. 取消变量: unset 变量名

  4. 交互式变量

  • read -p “请输入您测试的IP地址:” ip
  • ping -c1 $ip &>/dev/null && echo "                               i                         p                         u                         p                         "                         ∣                         ∣                         e                         c                         h                         o                         "                            ip up" || echo "                 ipup"∣∣echo"ip
    down" //
  • 双引号可以使变量中的空格,分开的部分称为一个整体
  • 单引号,转义一切符号 echo $schoo $schoo 666
  • 反引号是优先执行schoo=```date`` ` 2020年 05月 06日 星期三 14:57:13 CST
  1. 注意
  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)
  • 不能使用标点符号
  • 不能使用bash里的关键字(可用help命令查看保留关键字)
  • 起变量名,使用五个字母以上

(2)整数运算

  1. expr
  • 语法:expr 1 + 2 expr $num1 + $num2 (+ - * \ %取余)
  1. $(())
  • echo                               (                         (                            ((                 ((num1+$num2))
    echo $((num1+num2))
    echo $((5-3*2))
    echo $((2**3)) //(蜜)2的3次方
  1. $[]
  • echo $[5+2] + - * / %
    echo $[5**2]
  1. let
  • let sum=2+3; echo $sum
    let i++; echo $i

(3)小数运算(了解)

  1. 安装计算机程序bc
  • yum -y insatll bc

  • 用法

    echo “2*4” |bc
    echo “2^4” |bc
    echo “scale=2;6/4” |bc

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

(4)环境变量(了解)

  1. 直接声明:export back_dir2=/home/backup
  2. export back_dir1 将自定义变量转换成环境变量
  3. 作用范围: 在当前shell和子shell有效
  • 想使变量在当前用户登陆后一直生效,可以将变量放到~/.bash_profile
  • 想使变量在所有用户登陆后一直生效,可以将变量放到/etc/profile

(5)位置变量(了解)

  1. 位置变量语法
  • 命令 参数1 参数2 参数3 …9以后特殊定义
    $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 …
  1. 总结
  • 位置变量就是$1,$2,$3,$4
  • 位置变量预先已经被定义过了
  • 用户使用时,必须携带参数
  • 位置变量不是程序设计的唯一方法。比如read也可以

(6)预定义变量(了解)

  1. $0 脚本名/程序名
    $* 所有的参数
    $# 参数的个数
    $? 上一个程序的返回值(0是成功,非零失败)
    $$ 程序的PID
©著作权归作者所有:来自51CTO博客作者青云文质的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 谁要是敢用Map传参数,我喵喵就打死他
  2. java 8 stream reduce详解和误区
  3. Servlet系列教材 (二)- 基础 - 如何获取浏览器提交的参数
  4. 变量系列教材 (八)- 什么是Java的表达式
  5. 变量系列教材 (七)- Java 中final修饰变量
  6. 变量系列教材 (六)- 什么是Java的作用域
  7. 变量系列教材 (五)- Java的命名规则
  8. 变量系列教材 (四)- 在Java中进行基本类型的类型转换
  9. 变量系列教材 (三)- 什么是Java的字面值

随机推荐

  1. c语言结构化程序设计的三种基本结构是什
  2. c语言如何求n个数的平均值?
  3. c语言字符常量的合法表示形式是什么
  4. c语言规定,函数返回值的类型是由什么决定
  5. unsigned int几个字节
  6. c语言如何读取txt文件内容?
  7. c语言常量的正确表示方法有哪些
  8. c语言static关键字的作用是什么
  9. .net framework有什么用
  10. c语言求平方函数是什么