你好。 这是一系列Linux教程的第一部分。 在撰写本教程时,我认为您是创建Linux脚本的绝对初学者,非常愿意学习。 在这个系列中,这个级别会增加,所以我相信即使是更高级的用户也会有新的东西。 那我们开始吧
介绍
我们的大多数操作系统(包括Linux)都可以支持不同的用户界面(UI)。 图形用户界面(GUI)是一个用户友好的桌面界面,使用户可以点击图标来运行应用程序。 另一种类型的接口是命令行接口(CLI),它是纯文本的,并接受用户的命令。 一个shell,命令解释器通过CLI读取命令并调用该程序。 现在大多数操作系统都提供了包括Linux发行版在内的两个界面。
使用shell时,用户必须在终端上键入一系列命令。 没有问题,如果用户只需要执行一次任务。 但是,如果任务复杂,必须重复多次,那么用户可能会有点乏味。 幸运的是,有一种自动执行shell的任务的方法。 这可以通过编写和运行shell脚本来完成。 shell脚本是一种由Linux shell支持的一系列命令组成的文件。
为什么要创建shell脚本?
shell脚本是在Linux操作系统中自动执行任务的非常有用的工具。 它也可以用于组合实用程序并创建新的命令。 您可以将长命令和重复的命令序列组合成一个简单的命令。 所有脚本都可以在不需要编译的情况下运行,因此用户将无缝地进行原型化命令的创建。
我是Linux环境的新手,还能学习如何创建shell脚本吗?
当然! 创建shell脚本不需要复杂的Linux知识。 Linux CLI中的常见命令和文本编辑器的基本知识将会做。 如果您是绝对的初学者,并且在Linux命令行中没有背景知识,可能会发现本教程有用。
创建我的第一个shell脚本
bash
(Bourne-Again Shell)是大多数Linux发行版和OS X中的默认shell。它是一个开源GNU项目,旨在替代原来的Unix shell sh
(Bourne Shell)。 由Brian Fox开发,1989年发行。
您必须始终记住,使用bash的每个Linux脚本将从以下行开始:
#!/bin/bash
每个Linux脚本都以一个shebang (#!)
行开头。 bang行指定将用于运行脚本的命令解释器的完整路径/ bin / bash
。
你好,世界!
每个编程语言都以Hello World开头! 显示。 我们不会终止这种传统,并在Linux脚本中创建我们自己的这个虚拟输出版本。
要开始创建我们的脚本,请按照以下步骤操作:
第1步:打开一个文本编辑器。 我将使用gedit作为这个例子。 要使用终端打开gedit,请按键盘上的CTRL + ALT + T
并键入gedit。 现在,我们可以开始写我们的脚本。
第2步:在文本编辑器中键入以下命令:
#!/bin/bash
echo "Hello World"
第3步:现在,保存文件名为hello.sh
的文档。 请注意,每个脚本都有一个.sh文件扩展名。
第4步:由于Linux发行版实施的安全性原因,默认情况下文件和脚本不可执行。 但是,我们可以使用Linux CLI中的chmod命令来更改脚本。 关闭gedit应用程序并打开一个终端。 现在键入以下命令:
chmod +x hello.sh
上面的行将可执行权限设置为hello.sh
文件。 在首次运行脚本之前,此过程必须只执行一次。
第5步:要运行脚本,请在终端上键入以下命令:
./hello.sh
我们再来一个例子。 这一次,我们将通过使用whoami和date命令来显示一些系统信息到我们的hello脚本。
在我们的文本编辑器中打开hello.sh
,我们将通过键入以下内容编辑我们的脚本:
#!/bin/bash
echo "Hello $(whoami) !"
echo "The date today is $(date)"
保存我们在脚本中所做的更改,然后通过键入以下内容运行脚本(上例中的第5步):
./hello.sh
脚本的输出将是:
在前面的例子中,echo命令中使用了命令whoami和date。 这只表示在命令行中可用的所有实用程序和命令也可以在shell脚本中使用。
使用printf生成输出
到目前为止,我们已经使用echo来打印前面示例中命令的字符串和数据。 Echo用于显示一行文本。 可用于显示数据的另一个逗号是printf命令。 printf控制和打印数据,如C中的printf函数。
以下是公共主控制的总结:
控制 | 用法 |
\“ | 双引号 |
\\ | 反斜杠 |
\ b | 退格 |
\C | 不产生进一步的产出 |
\ e | 逃逸 |
\ n | 新队 |
\ r | 回车 |
\ t | 水平标签 |
\ v | 垂直标签 |
示例3:我们将打开以前的hello.sh
并将所有echo更改为printf并再次运行该脚本。 注意我们的输出发生了什么变化。
#!/bin/bash
printf "Hello $(whoami) !"
printf "The date today is $(date)"
所有行都相互连接,因为我们没有在printf命令中使用任何控件。 因此,Linux中的printf命令与C函数printf具有相同的属性。
要格式化我们的脚本的输出,我们将使用上面的表汇总中的两个控件。 为了工作,控件必须由printf命令的引号内的\指示。 例如,我们将把以前的hello.sh
内容编辑为:
#!/bin/bash
printf "Hello \t $(whoami) !\n"
printf "The date today is $(date)\n"
该脚本输出以下内容:
结论
在本教程中,您已经了解了shell脚本的基础知识,并且能够创建和运行shell脚本。 在本教程的第二部分,我将介绍如何声明变量,接受输入并使用shell命令执行算术运算。