一起来学Shell脚本编程(一)

简介: 一起来学Shell脚本编程(一)

前言

目前正在出一个Shell脚本编程系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~

前面我们学习了Linux的一些基本命令,需要我们在终端手动去执行,但在处理一些复杂的操作就显得有点乏力,需要不停的执行,还很容易出错。有没有一种办法,可以帮助我们执行这一些列操作,方法当然有,那就是通过脚本去解决。

作为服务端开发,shell脚本编程还是要掌握一下的,可以做做基础性的运维,提高工作效率。

本系列主要以Linux Bash为主 ,好了, 废话不多说直接开整吧~

什么是 Shell

Shell是计算机操作系统中的一种用户界面,用于与操作系统内核进行交互。它是用户与计算机之间的一个命令行界面或图形界面,用户可以通过Shell执行各种操作,例如运行程序、管理文件和目录、设置系统参数等。

Shell的主要功能包括:

  1. 命令解释和执行:用户可以在Shell中输入各种命令,Shell会解释这些命令并将它们传递给操作系统内核执行。这些命令可以是系统命令、应用程序命令或脚本文件。
  2. 文件和目录管理:用户可以使用Shell来创建、删除、移动、复制和查看文件和目录。这些操作可以通过命令行或图形用户界面来执行,具体取决于Shell的类型。
  3. 环境设置:用户可以在Shell中设置环境变量、别名和其他系统参数,以影响其后续命令的执行方式。
  4. 管道和重定向:Shell支持管道操作,允许将一个命令的输出传递给另一个命令作为输入。还可以使用重定向来将命令的输入和输出从标准输入和标准输出中定向到文件或其他设备。
  5. 脚本编写:用户可以编写Shell脚本,将一系列命令组合在一起,以便自动化任务、批处理处理或创建自定义工作流程。

在不同的操作系统中,有不同类型的Shell可供选择,其中一些常见的包括:

  • BashBash(Bourne Again Shell)是一种广泛使用的Unix/Linux Shell,它是许多Linux发行版的默认Shell
  • CmdCmdWindows操作系统中的命令提示符Shell,也称为命令行界面。
  • PowerShellPowerShellWindows上一种强大的Shell,它提供了更丰富的脚本编写和自动化功能。
  • ZshZsh是一种功能强大的Shell,它在Bash基础上提供了额外的功能和自定义选项。
  • FishFish是一种用户友好的Shell,具有智能自动补全和语法高亮等特性。

每种Shell都有其自己的语法和功能,用户可以根据需要选择合适的Shell来完成任务。Shell在计算机操作中发挥着重要的作用,它是与计算机系统交互的桥梁之一。

Shell脚本入门

这里给大家讲的例子主要以Bash为主,重点给大家介绍脚本的语法,下面我们通过一个例子快速的入门

新建一个文件test.sh,扩展名为.sh(sh代表shell)

#!/bin/bash
echo "Hello World !"

语法:

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shellecho命令用于向窗口输出文本。

执行脚本:

chmod +x test.sh
./test.sh

输出:

Hello World !

如果运行成功,那么你已经入门了~

注释语法

#开头的行就是注释,会被解释器忽略。因为没有多行注释,只能每一行加一个#号。

# --------
# 这是注释块
# --------

echo

内部指令,用于在屏幕上打印出指定的字符串

echo "hello\n";
echo -e "Hello,\n\tWorld!";  # `-e` 执行转义字符

输出:

hello\n
Hello,
  World!

将结果输出到文件:

echo "hello" >> hello.txt

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ls
hello.txt  test.sh
[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

printf

格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版

printf "hello \n world"

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
hello
 world

printf也可以不用转义字符,进行格式化输出:

printf "hello 
    world";

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
hello 
    world[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

参数格式化输出:

printf "\n hello %s" "world" # world作为字符串参数
printf "\n 1+1= %d" 2 # 2作为数字参数 
printf "\n%s and %d \n" # 无参数时 数参默认为0
printf "\n%d"  1 2 3 4 5 # 1 2 3 4 5 都为参 循环输出

输出:

[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./test.sh
 hello world
 1+1= 
 2 and 0 
 1
 2
 3
 4
 5
[root@iZ2ze5vrnucj8nu52fq932Z shell]# 

结束语

大家平时在工作的时候就可以灵活运用起来了,多用用就熟悉了,大部分项目中都会用到脚本帮助我们去做一些自动化的工作,从而提高效率,还不容易出错~

本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注鼓励一下呗~

相关文章
|
9天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
22 0
|
1天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
1天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
8 3
|
7天前
|
弹性计算 运维 监控
|
7天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0
|
8天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形3
【4月更文挑战第29天】
19 0
|
8天前
|
存储 弹性计算 运维
使用shell 脚本打印图形2
【4月更文挑战第29天】
17 0
|
8天前
|
弹性计算 运维 Shell
使用shell 脚本打印图形1
【4月更文挑战第29天】
19 0
|
8天前
|
存储 弹性计算 运维
调整虚拟机内存参数的shell 脚本
【4月更文挑战第29天】
15 0