美文网首页
day28shell编程光速入门

day28shell编程光速入门

作者: 国王12 | 来源:发表于2019-04-09 20:54 被阅读0次

1.为什么要学shell编程?

linux系统中会大量使用shell,工作中也会自动化实现业务,列如自动备份,监控,批量安装

shell编程是必须要会的,也是最简单的编程语言。是运维人员具备的基本本领

2.什么是shell?

  shell就是一个解释器,命令行的命令以及脚本,都会通过shell解释,传给操作系统,再传给用户

解释器是在创建用户是指定的解释器  useradd  -s  指定解释器

3.shell的分类 (CentOs7支持的解释器)

[root@king ~]# cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

很多都淘汰了,现在默认bash

4.Centos7默认/bin/bash解释器

5.什么是shell脚本?

把程序,命令放在文件里执行,这个文件就称之为shell脚本文件

工作中最多的就是编程写脚本,然后存放在文件里。

书写脚本编程习惯:

1.以.sh结尾

2.脚本开头第一行 #!/bin/bash  脚本内容有谁解释。

  由于linux下默认是bash,所以不写也一样

3.

6.shell的变量:

  a. 全局变量(环境变量)

  在整个系统中生效,一般是大写,系统中默认存在一些这样的变量

自定义环境变量:

export OLDBOY="I am oldboy."  将其放到/etc/profile  或者/etc/bashrc  推荐后者

b.局部变量(普通变量)

是编写shell脚本最常用的变量

变量名=值

a=1

变量名:数字、字母、下划线,不能以数字开头

= 等号 ,在这里叫赋值符,把什么东西给谁谁  赋值符号两边不能有空格

值: 东西,变量内容

  引用内容的符号    :单引号、双引号、反引号(可以解析命令)、不加引号

a=1

let  y="$a+1"

echo $y  即输出的是1+1=2,let 是让y的环境变量里自动相加  不加let ,结果就是1+1

7.表达式

【  表达式  】  中括号表达式

在这里,中括号里的内容根中括号两边都得有空格,

字符串要加双引号

[ "a" = "a" ] && echo 1 ||echo 0

如果成立,打印1,不成立则打印0      &&前边成立,这边输出,不成立,不输出(跟屁虫)

                                                            || 前边成立,这边不输出,前边不成立,这边输出(杠精)

整数表达式:

>  -gt

>=  -ge

<    -lt

<=  -le 

不等于  -ne 

等于  -eq

1)整数表达式符,两端必须有空格

2)中括号里边两端必须有空格

3)变量和比较的内容,不需要加引号

4)字符串需要加双引号

字符表达式:

-z  变量内容长度为0时,为真(正确)。zero

-n    变量内容长度【不】为0时,为真(正确)。not zero

a == a 字符串是否相同

说明:

1)字符串要加双引号

判断句:

如果 。。。。。那么。。。。。。

a=

(变量)

if  [  表达式  ]

then

(那么)

      echo

elif

(要么/或者)

        echo

else

(否则)

      echo

  fi

read 命令 读取用户 输入

-p  "提醒(请你输入什么什么):" 空格  内容

-t    “多长时间内等待输入”

9.for循环

for n in 取值列表

do

    执行命令

done

课后练习;

1.比较整数大小

[root@king ~]# cat 1.sh

#! /bin/bash

read -p "请输入两个正整数,我帮你比大小:" a b

if [ $a -gt $b ]

then

    echo "a>b"

elif [ $a -eq $b ]

then

    echo "a=b"

else

    echo "a<b"

fi

[root@king ~]#

2.每周六日区旅游,其他时间上课

[root@king ~]# cat 2.sh

#! /bin/bash

if [ $(date +%w) == 6 ]

then

    echo "去旅游"

else

    echo "滚回去上课"

fi

[root@king ~]#

3.取出当前系统IP地址,判断是否为10.0.0.31,如果是,提示正确,反之,提示错误

ip add|sed -nr 's#.*inet (.*)/24 brd.*$#\1#gp'

[root@king ~]# cat 3.sh

#! /bin/bash

a="$(ip add|sed -nr 's#.*inet (.*)/24 brd.*$#\1#gp')"

if [ "$a" == "10.0.0.31" ]

then

    echo "正确"

else

    echo "错误"

fi

[root@king ~]#

4.打印10.0.0.1--10.0.0.254 共254个IP ,当IP为系统IP时,给出该IP时系统IP的提示提示

[root@king ~]# cat 4.sh

#! /bin/bash

for n in 10.0.0.{1..254}

do

  echo $n

if [ $n == "10.0.0.201" ]

then

    echo "此IP为系统IP"

fi

done

相关文章

  • day28shell编程光速入门

    1.为什么要学shell编程? linux系统中会大量使用shell,工作中也会自动化实现业务,列如自动备份,监控...

  • day 28

    shell编程基础 shell编程一小时光速入门web集群架构会用到shell编程基础 1、为什么要学shell编...

  • day28-Shell编程3小时光速入门

    Shell编程3小时光速入门 1、为什么要学习shell编程? Linux系统中会大量的使用Shell,工作中我们...

  • day28-Shell脚本基础

    SHELL编程基础 三小时光速入门因为集群架构会用到shell编程基础,提前讲一丢丢。 shell编程 1. 为什...

  • 第二十八天课堂笔记

    老男孩思想: Shell编程3小时光速入门 因为Web集群架构会用到Shell编程基础,提前讲。 跟老男孩学Lin...

  • C++程序员光速入门C#(三):继承、泛型、异常

    Jacob的C++程序员光速入门C#系列:C++程序员光速入门C#(一):总览、数据类型、运算符C++程序员光速入...

  • C++程序员光速入门C#(二):流程控制、函数、类

    Jacob的C++程序员光速入门C#系列:C++程序员光速入门C#(一):总览、数据类型、运算符C++程序员光速入...

  • Shell编程3小时光速入门

    作者:马帅琦 归档:day28 时间:2019/4/9 Shell编程3小时光速入门 因为Web集群架构会用到Sh...

  • Java编程入门

    Java编程入门(词汇表) Java编程入门:前言 Java编程入门:第1章 思考的风景 Java编程入门(1.1...

  • Git 光速入门

    1.1 git是什么 git是一种版本控制器.更直白说,团队开发时,管理代码用的软件.面试时,容易被问到的一个东西...

网友评论

      本文标题:day28shell编程光速入门

      本文链接:https://www.haomeiwen.com/subject/jhhwiqtx.html