Linux Shell脚本编程简介

什么是Shell

Shell为您提供了一个到Linux系统的接口。 它收集您的输入并根据该输入执行程序。 当程序完成执行时,它会显示该程序的输出。

Shell是一个我们可以在其中运行命令、程序和Shell脚本的环境。 不同风格的Shell,就像不同风格的操作系统一样。 每种Shell都有自己的一组可识别的命令和函数。

Shell提示符

提示符$,称为命令提示符,由Shell发出。 显示提示符时,您可以键入命令。

按下Enter后,Shell会读取您的输入。 它通过查看输入的第一个单词来确定您要执行的命令。 一个词是一组完整的字符。 用空格和制表符分隔单词。

以下是date命令的简单示例,它显示当前日期和时间

$date
Sat Oct  2 11:51:32 CST 2021

您可以使用环境变量PS1自定义命令提示符。

Shell脚本

Shell脚本是一种设计为由Unix/Linux shell运行的计算机程序。Shell是一个命令行解释器,Shell脚本执行的典型操作包括文件操作、程序执行和打印文本。

Shell脚本的基本表现是一个命令列表,这些命令按执行顺序列出。一个好的Shell脚本会有注释,前面有#符号,描述步骤。

它包含条件测试,比如值A大于值B;循环允许我们遍历大量数据,文件读取和存储变量读取和存储,脚本还可以包含函数

我们将在接下来的部分中编写许多脚本。它是一个简单的文本文件,我们将在其中放置我们所有的命令和其他几个必需的结构,这些结构告诉Shell环境要做什么以及何时做。

Shell脚本和函数都被解释执行。这意味着它们不需要编译。

## 脚本示例

假设我们创建了一个first-shell.sh脚本。请注意,所有脚本都具有.sh扩展名。在向脚本添加任何其他内容之前,您需要提醒系统正在启动一个Shell脚本。例如

#!/bin/bash

这告诉系统接下来的命令将由Shell执行。

#!/bin/bash
pwd
ls

Shell脚本注释

您可以将您的注释放在脚本中,使用#开头,如下所示

#!/bin/bash

# Author : jiutong
# Copyright (c) liyaxiaomishu.com

pwd
ls

保存以上内容,并添加脚本的执行权限

$chmod +x first-shell.sh

Shell脚本现在可以执行了

$./first-shell.sh

执行后,您将收到以下结果:

$./first-shell.sh
/root/shell
first-shell.sh

注意 - 要执行当前目录中的程序,请使用./program_name

扩展的 Shell 脚本

Shell脚本有几个必需的结构,它们告诉shell 环境要做什么以及何时做。 当然,大多数脚本都比上面的更复杂。

毕竟,shell是一种真正的编程语言,包含变量、控制结构等。 无论脚本变得多么复杂,它仍然只是一个按顺序执行的命令列表。

以下脚本使用读取命令,该命令从键盘获取输入并将其分配为变量NAME的值,最后将其打印在STDOUT上。

#!/bin/bash

# Author : jiutong
# Copyright (c) liyaxiaomishu.com

echo "What is your name?"
read NAME
echo "Hello, $NAME"

运行示例脚本

$./tell-me-name.sh 
What is your name?
jiutong
Hello, jiutong