该Shell为您提供了UNIX系统的接口。它收集您的输入,并根据该输入执行程序。程序完成执行后,将显示该程序的输出。

Shell是一个环境,我们可以在其中运行命令,程序和Shell脚本。Shell的样式不同,就像操作系统的样式不同。每种Shell程序都有其自己的一组公认的命令和功能。

Shell提示:

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

按下Enter后,Shell程序将读取您的输入。它通过查看输入的第一个单词来确定要执行的命令。单词是连续的字符集。空格和制表符将单词分开。

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

$date
Thu Jun 25 08:30:19 MST 2009

您可以使用环境教程中介绍的环境变量PS1定制命令提示符。

Shell类型:

在UNIX中,有两种主要的Shell类型:

  1. BourneShell。如果使用的是Bourne型Shell,则默认提示符为$字符。

  2. C shell。如果使用的是C型Shell,则默认提示为%字符。

Bourne Shell再次具有各种子类别,分别列出如下:

  • 伯恩壳(sh)

  • Korn shell(ksh)

  • Bourne Again壳(bash)

  • POSIX shell(sh)

不同的C型Shell如下:

  • C shell(csh)

  • TENEX/TOPS CShell(tcsh)

The original UNIX shell was written in the mid-1970s by Stephen R. Bourne while he was at AT&T Bell Labs in New Jersey.

BourneShell是UNIX系统上第一个出现的Shell,因此被称为"Shell"。

在大多数UNIX版本上,Bourne shell通常都安装为/bin/sh。因此,它是编写脚本以在多个不同版本的UNIX上使用的首选Shell。

在本教程中,我们将介绍基于Borne Shell的大多数Shell概念。

Shell脚本:

Shell脚本的基本概念是命令列表,按执行顺序列出命令。一个好的shell脚本将带有注释,并在井号前加#号,以描述步骤。

有条件测试,例如值A大于值B,循环使我们能够处理大量数据,读取和存储数据的文件以及读取和存储数据的变量,并且脚本可能包含函数。

Shell脚本和函数均被解释。这意味着它们没有被编译。

在接下来的几篇教程中,我们将编写许多脚本。这将是一个简单的文本文件,我们将在其中放入所有命令以及其他一些必不可少的构造,这些构造告诉Shell环境做什么和何时进行。

示例脚本:

假设我们创建了一个test.sh脚本。请注意,所有脚本都将具有 .sh 扩展名。在向脚本添加其他任何内容之前,您需要提醒系统正在启动Shell脚本。这是使用shebang构造完成的。例如:

#!/bin/sh

这告诉系统后面的命令将由Bourne shell执行。 之所以称为shebang,是因为#符号称为哈希,而!则称为!符号被称为爆炸。

要创建包含这些命令的脚本,请首先在shebang行中添加命令,然后添加以下命令:

#!/bin/bash
pwd
ls

壳牌评论:

您可以按照以下步骤在脚本中添加注释:

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Learnfk.com
# Script follows here:
pwd
ls

现在,您保存上述内容,并使该脚本可执行如下:

$chmod +x test.sh

现在,您已准备好要执行的shell脚本,如下所示:

$./test.sh

这将产生以下结果:

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

注意:要执行当前目录中可用的任何程序,请使用 ./program_name 执行。

Extended Shell脚本:

Shell脚本具有几个必需的构造,这些构造告诉Shell环境做什么和何时进行。当然,大多数脚本比上面的脚本更复杂。

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

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

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Learnfk.com
# Script follows here:

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

这是脚本的示例运行:

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$

参考链接

https://www.learnfk.com/linux/linux-shell.html