前言
目前正在出一个Shell脚本编程
系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~
前面我们学习了Linux
的一些基本命令,需要我们在终端手动去执行,但在处理一些复杂的操作就显得有点乏力,需要不停的执行,还很容易出错。有没有一种办法,可以帮助我们执行这一些列操作,方法当然有,那就是通过脚本去解决。
作为服务端开发,shell脚本编程
还是要掌握一下的,可以做做基础性的运维,提高工作效率。
本系列主要以Linux Bash
为主 ,好了, 废话不多说直接开整吧~
什么是 Shell
Shell
是计算机操作系统中的一种用户界面,用于与操作系统内核进行交互。它是用户与计算机之间的一个命令行界面或图形界面,用户可以通过Shell
执行各种操作,例如运行程序、管理文件和目录、设置系统参数等。
Shell
的主要功能包括:
- 命令解释和执行:用户可以在
Shell
中输入各种命令,Shell
会解释这些命令并将它们传递给操作系统内核执行。这些命令可以是系统命令、应用程序命令或脚本文件。 - 文件和目录管理:用户可以使用
Shell
来创建、删除、移动、复制和查看文件和目录。这些操作可以通过命令行或图形用户界面来执行,具体取决于Shell
的类型。 - 环境设置:用户可以在
Shell
中设置环境变量、别名和其他系统参数,以影响其后续命令的执行方式。 - 管道和重定向:
Shell
支持管道操作,允许将一个命令的输出传递给另一个命令作为输入。还可以使用重定向来将命令的输入和输出从标准输入和标准输出中定向到文件或其他设备。 - 脚本编写:用户可以编写
Shell
脚本,将一系列命令组合在一起,以便自动化任务、批处理处理或创建自定义工作流程。
在不同的操作系统中,有不同类型的Shell可供选择,其中一些常见的包括:
- Bash:
Bash(Bourne Again Shell)
是一种广泛使用的Unix/Linux Shell
,它是许多Linux
发行版的默认Shell
。 - Cmd:
Cmd
是Windows
操作系统中的命令提示符Shell
,也称为命令行界面。 - PowerShell:
PowerShell
是Windows
上一种强大的Shell
,它提供了更丰富的脚本编写和自动化功能。 - Zsh:
Zsh
是一种功能强大的Shell
,它在Bash
基础上提供了额外的功能和自定义选项。 - Fish:
Fish
是一种用户友好的Shell
,具有智能自动补全和语法高亮等特性。
每种Shell
都有其自己的语法和功能,用户可以根据需要选择合适的Shell
来完成任务。Shell
在计算机操作中发挥着重要的作用,它是与计算机系统交互的桥梁之一。
Shell脚本入门
这里给大家讲的例子主要以Bash
为主,重点给大家介绍脚本
的语法,下面我们通过一个例子快速的入门
新建一个文件test.sh
,扩展名为.sh
(sh代表shell)
#!/bin/bash echo "Hello World !"
语法:
#!
是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo
命令用于向窗口输出文本。
执行脚本:
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]#
结束语
大家平时在工作的时候就可以灵活运用起来了,多用用就熟悉了,大部分项目中都会用到脚本帮助我们去做一些自动化的工作,从而提高效率,还不容易出错~
本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注
鼓励一下呗~