前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3 Linux基础Shell脚本

3 Linux基础Shell脚本

作者头像
Lemon黄
发布2023-11-27 14:42:52
2720
发布2023-11-27 14:42:52
举报
文章被收录于专栏:Lemon黄

Shell 脚本编写是一项非常有用且强大的技能,可用于自动执行任务、管理系统配置以及简化 DevOps 工作流程。本文我们将要了解一下 Linux 中的 Shell 脚本的基础知识。

什么是 Shell 脚本

简单地说,Shell 脚本就是在脚本文件中编写一系列命令,由 Shell 解释器执行。Shell 充当用户和操作系统之间的接口,解释并执行脚本中的命令。对于 Devops,Shell 脚本在自动化重复性任务、执行系统配置、管理基础设施以及协调各种工具和流程方面发挥着至关重要的作用。它允许 DevOps 专业人员创建自定义工作量,自动化部署、监控系统健康状态等。综上,总结一下 Shell 脚本的作用:

  • 自定义工作流程:Shell 脚本可以灵活地创建根据我们特定要求定制的自定义工作流程。
  • 执行系统配置:Shell 脚本允许我们配置和管理系统配置、安装软件以及设置环境。
  • 集成工具和流程:Shell 可以将不同的工具和流程集成到连贯的管道中,从而实现无缝协作和自动化。

解释器指令

#!/bin/bash(shebang) 被称为解释器指令,用于指定执行脚本的解释器。在本例中,它表示应使用 Bash shell 解释脚本。Bash(Bourne Again Shell) 是一种广泛使用的 Shell,也是大多数 Linux 发行版的默认 Shell。还有一种写法是可以协程这样:#!/bin/shsh解释器是对系统默认 Shell 的更为通用的称呼。根据系统的不同,它可能与 Bash 相同,也可能不同。使用 #!/bin/sh可以让脚本由系统默认的 Shell 执行,它可以是 Bash 或其他兼容的 Shell。值得一提的是,与基本的 POSIX Shell(/bin/sh)相比,Bash 提供了更多的特性和功能。如果我们的脚本需要特定的 Bash 功能,建议使用 #!/bin/bash以确保兼容性。

基础使用

1 打印消息

我们从一个简单的打印消息的 Shell 脚本开始学期,创建一个新文件,例如 case1.sh,并添加一下代码:

代码语言:javascript
复制
#!/bin/bash

echo "这是学习 DevOps 的第三天了"`

上面脚本中,#!/bin/bash指定解释器为 Bash。执行脚本时,echo 命令用于在终端上显示 "这是学习 DevOps 的第三天了"的信息。保存文件,确保文件是可执行的,如果不可执行请使用这个命令设置权限:chmod 700 case1.sh,然后运行脚本文件:./case1.sh。我们将能看到消息显示在终端上,如下所示:

代码语言:javascript
复制
[root@localhost test]# chmod 700 case1.sh
[root@localhost test]# ./case1.sh
这是学习 DevOps 的第三天了

2 获取用户输入和打印变量

Shell 脚本允许我们编写的脚本与用户交互,并动态处理输入。下面是一个脚本示例,它接受用户输入,将其存储到变量中,然后打印变量。

代码语言:javascript
复制
#!/bin/bash

# 设置变量 var
var="我是一个变量"

# 读取用户输入,并存到到 name 变量中
echo "请输入你的名字:"
read name

# 打印 name 变量
echo "我的名字是 $name"

# 打印预定义的 var 变量
echo "打印 var 变量的值:$var"

上面脚本中,使用 read命令提示用户输入名字,用户输入的内容存在在 name 变量中。变量 var 预先定义并赋了值,最后脚本打印用户名字和预定义变量的值。以下是输出结果:

代码语言:javascript
复制
[root@localhost test]# vi case2.sh
[root@localhost test]# ./case2.sh
请输入你的名字:
monet
我的名字是monet
打印 var 变量的值:我是一个变量

执行此脚本将提示用户输入输入名字。输入名字后,脚本将希纳是输入的名称和预定义的变量值。

3 if-else 语句的使用

条件语句对于 Shell 脚本的决策至关重要。我们来看下面使用 if-else 语句进行两个数字大小比较的例子。

代码语言:javascript
复制
#!/bin/bash

# 读取用户输入,并存储到变量 number1
echo "请输入第一个数字:"
read number1

# 读取用户输入,并存储到变量 number2
echo "请输入第二个数字:"
read number2

# 比较两个数字并说明它们是否相等
if [ $number1 -eq $number2 ]; then
    echo "两个数字相等"
else
    echo "两个数字不相等"
fi

上面脚本中,系统会提示用户输入两个数字,然后脚本使用 if-else 语句来比较数字。如果相等,则会显示”两个数字相等“,反之不相等,显示”连个数字不相等“。下面是过程及输出结果:

代码语言:javascript
复制
[root@localhost test]# vim case3.sh
[root@localhost test]# ./case3.sh
请输入第一个数字:
12
请输入第二个数字:
12
两个数字相等
[root@localhost test]# ./case3.sh
请输入第一个数字:
13
请输入第二个数字:
12
两个数字不相等

Shell 脚本提供了功能强大的构造,如 if-else 语句,循环和函数,可以让我们在脚本中构建复杂的自动化逻辑和决策。以上就是 Linux 中 Shell 脚本编写的基础知识。Shell 脚本为系统和流程的自动化、定制和高效管理打开了一个充满可能性的世界,随着我们逐渐的学习下去,相信我们会对它越来越熟悉。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 莫奈黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 Shell 脚本
  • 解释器指令
  • 基础使用
    • 1 打印消息
      • 2 获取用户输入和打印变量
        • 3 if-else 语句的使用
        相关产品与服务
        CODING DevOps
        CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档