linux 第一章 shell编程及自动化运维实现

本文详细介绍了Linux Shell编程的基础知识,包括shell语言特点、执行方式、变量定义与使用,如自定义变量、整数运算,以及环境变量和位置变量的概念。重点讲述了如何通过shell实现自动化运维,通过实例展示了如何编写脚本来实现特定任务,如测试主机在线状态和计算成绩平均分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux shell编程及自动化运维实现

第一章 变量

一、shell 前言

1、shell语言的特点:
  • SHELL语言是指Unix操作系统的命令语言,同时又是该命令语言的解释程序的简称。

  • shell本身是一个用c语言编写的程序,它是用户使用unix/linux的桥梁,用户的大部分工作都是通过shell完成的。

  • shell即是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令。

  • 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

  • 它虽然不是unix/linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序。

  • 建立文件并以并行的方式协调各个程序的运行。

  • 因此,对于用户来说,shell是最重要的实用程序。

  • 深入了解和熟练掌握shell的特性及其使用方法,是用好unix/linux系统的关键。

2、shell能做什么:

在这里插入图片描述

3、shell执行方式

shell多种执行方式:

  • 准备测试脚本:
[root@localhost] vim file1
echo "hello 2020"
read -p  "请输入您的姓名:"  name 
echo "哈哈$name是大笨蛋"

执行1:bash file1

[root@localhost] bash file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行2:sh file1

[root@localhost] sh file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行3:. file1

[root@localhost] . file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

执行3:source file1

[root@localhost] source file1
hello 2022
请输入您的姓名:666
哈哈哈666是大笨蛋

多种执行方式的区别:

准备环境:

#1.准备环境
[root@localhost] ls /home
aofa

vim bash.sh

#!/bin/bash                        #脚本声明
cd /home
ls

1和2的方式,是子shell,执行完不影响本shell。

[root@localhost~] bash     #进入子shell,默认打开
[root@localhost~] exit     #退出子shell    
[root@localhost] bash  bash.sh
aofa
[root@localhost~] sh  bash.sh
aofa
[root@localhost~] pwd
/root #当前的位置还在root你看不见那个shell它运行完就自动关了

3和4的方式,是本shell ,执行完改变本shell。

[root@localhost~] . bash.sh    #影响的是当前shell
aofa
[root@localhost home] pwd
/home
[root@localhost~] source bash.sh    #影响的是当前shell
aofa
[root@localhost home] pwd
/home
4、shell解释器的位置
[root@localhost ~] which  bash
/usr/bin/bash

[root@localhost ~] cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

二、变量

简介:shell变量用一个固定的字符串去表示不固定的内容,便于修改

==简述:==用户自定义变量是最常见的变量类型,其特点是变量名和变量值都是由用户自由定义的。

学习要点:

  • 定义变量:变量名=变量值

  • 引用变量:变量名,或变量名,或变量名,或{变量名}

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

  • 取消变量:unset变量名

1、自定义变量

自定义变量只在当前shell内生效

定义变量

该如何定义变量呢?很简单,只需执行“变量名=变量值”命令即可,不过要遵守变量定义规则。例如:

[root@localhost ~] name="hyb    666"
变量调用

当我们需要提取变量中的内容时,需要在变量名之前加入“$”符号。那么最简单的变量调用就是通过echo命令输出变量的值。命令如下:

  • 定义变量name
[root@localhost ~] name="hyb 666"
  • 输出变量name的值
[root@localhost ~] echo $name
hyb 666
  • 错误定义示范

变量的定义就是这么简单,但是如果不遵守变量定义规则,就会报错:比如:

变量名不能以数字开头

[root@localhost ~] 2name="hyb 666"
bash: 2name=hyb 666: 未找到命令...

等号左右两边不能有空格

[root@localhost ~] name = "hyb  666"
bash: name: 未找到命令...

变量的值如果有空格,必须用引号包含

[root@localhost ~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@何永斌@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值