首页 > 系统相关 >无涯教程-Linux - Unix - What is Shell?函数

无涯教程-Linux - Unix - What is Shell?函数

时间:2023-12-08 23:06:31浏览次数:43  
标签:脚本 What shell 无涯 sh 命令 UNIX Shell

该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

标签:脚本,What,shell,无涯,sh,命令,UNIX,Shell
From: https://blog.51cto.com/u_14033984/8741790

相关文章

  • 无涯教程-Linux - a函数
    ListofUnix,LinuxCommands[a][b][c][d][e][f][g][h][i][j][k][l][m][n][o][p][q][r][s][t][u][v][w][x][y][z] acceptacctonacpidaddftinfoaddpartaddr2lineadduseragettyaliasalternativesamtuanacronanimatea......
  • 无涯教程-Angular7 - 测试和构建
    本章将讨论以下内容-ToTestAngular7ProjectToBuildAngular7Project测试Angular7项目在项目设置过程中,已经安装了所需的测试软件包。为每个新组件,服务,指令等创建一个.spec.ts文件。要运行测试用例,使用的命令如下-ngtest以下是app.component.ts的app.componen......
  • 无涯教程-Angular7 - Materials模块
    Materials为您的项目提供了许多内置模块。autocomplete,datepicker,slider,menus,grids和toolbar等函数。要使用Materials,我们需要导入包装。Angular2也具有上述所有函数,但可以作为@angular/core模块的一部分使用。从Angular4开始,Materials模块提供了一个单独的模块@angular/mat......
  • WhatsApp群发功能的代码揭秘
    随着社交媒体的普及,WhatsApp作为一款全球性的即时通讯工具,已经成为人们生活中不可或缺的一部分。今天,我们将为您揭秘WhatsApp群发功能的代码,帮助您更好地了解这一方便快捷的通讯方式。一、WhatsApp群发功能简介WhatsApp群发功能可以让用户将一条消息发送给多个接收者,这一功能对于商......
  • 无涯教程-Angular7 - 动画效果
    Animations在html元素之间增加了很多交互,Angular2可以使用动画,从Angular4开始,动画不再是@angular/core库的一部分,而是一个单独的程序包,需要将其导入app.module.ts中。首先,我们需要使用下面的代码行导入库-import{BrowserAnimationsModule}from'@angular/platform-browse......
  • Linux虚拟机配置网络之Xshell远程连接
     ......
  • 无涯教程-Angular7 - Http Client
    HttpClient将帮助我们提供POST,GET相关方法,使用时需要导入http模块。我们需要将模块导入app.module.ts中,如下所示-import{BrowserModule}from'@angular/platform-browser';import{NgModule}from'@angular/core';import{AppRoutingModule,RoutingComponent}from......
  • 无涯教程-Angular7 - 路由(Routing)
    路由(Routing)基本上意味着在页面之间导航,现在让我们创建一个组件,看看如何在其上使用路由。如下所示-app.module.tsimport{BrowserModule}from'@angular/platform-browser';import{NgModule}from'@angular/core';import{AppRoutingModule}from'./app-routin......
  • 无涯教程-Angular7 - 事件绑定
    在本章中,无涯教程将讨论事件绑定在Angular7中的工作方式,当用户以键盘移动,鼠标单击或鼠标悬停的形式与应用程序交互时,它将生成一个事件。需要处理这些事件以执行某种操作,让无涯教程考虑一个示例以更好地理解这一点。app.component.html<!--Thecontentbelowisonlyaplace......
  • 无涯教程-Angular7 - 简介
    Angular7是一个开放源代码JavaScript框架,用于在JavaScript, html 和Typescript(JavaScript的超集)中构建Web应用程序和应用程序。Angular为animation,httpservice和materials提供了内置功能,这些功能又具有auto-complete,naigation,toolbar,menus等功能。代码以Typescript编写......