如何入门 Linux Shell 脚本编写|世界今头条

2023-05-22 09:31:48 来源:Linux中国 分享到:
什么是 Shell 呢?

Shell(交互界面)是类 UNIX/Linux 操作系统中的一个解释器。它将用户输入的命令解释成操作系统的系统调用来执行这些命令。简单来说,Shell 形式上是操作系统的包装。比如,你可能使用 Shell 命令来列出目录中的文件,如ls命令,或使用命令复制,如cp命令。


(相关资料图)

$ lsDesktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos

在上方的例子中,当你输入ls并按下回车键。$符号是 Shell 的提示符,意味着 Shell 等着命令的输入。下面的一行就是当前目录下的文件名。

什么是 Shell 提示符?

提示符,即$,被称作命令提示符,是由 Shell 发出的(LCTT 译注:这个概念,可能有误。请参看:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt )。当提示符出现后(LCTT译注:此处提示符并不特指$符号),你就可以输入命令了。Shell 将会在你按下回车键后读取你的输入。它会通过查看你输入的第一个单词来确定你希望执行的命令。“单词”指的是一组连续的字符。空格和制表符作为分割单词的标志。

不同类型的 Shell

由于没有限制只能有一个 Shell,你可以按照自己的意愿来自由选择运行任何一种 Shell。这当然挺好的,但是在不清楚其它替代方案的情况下选择一种 Shell 没有多大益处。下面列出了一些 UNIx/Linux 下常见的 Shell。

Sh(Bourne Shell)

最初的 Unix Shell 通常被称作 Sh,是 Shell(或 Bourne Shell)的简写,以其作者 Steven Bourne 命名。它在几乎所有的类 UNIX 操作系统下都可以找到。基本的 Bourne Shell 仅支持相当有限的命令行编辑。你可以输入字符,使用退格键删除字符,还有就是按下回车键来执行命令。当命令行出现异常了,你可以按下Ctrl-C组合键来终止整个命令。

Csh(C Shell)

它是由加利福尼亚大学伯克利分校的 Bill Joy 设计的,由于它的语法和 C 语言相似,所以被命名为 C Shell。这种 Shell 在 Bourne shell 的基础上增加了一些实用功能,尤其是可以重用之前的命令来帮助创建之后要执行的命令。当你去完成一项专门任务的时候,大多数的情况下需要执行不止一条命令,这样 C shell 的能力就相当有用了。

Ksh(Korn Shell)

它是由贝尔实验室的 David Korn 创造的,Korn Shell 提供了和 C Shell 相同的增强,其中有一项重要的不同:Korn Shell 提供了对旧的 Bourne Shell 语法的向后兼容。在 Unix 下,如 AIX & HP-UX 上,Korn Shell 是默认 Shell。

Bash(Bourne Again Shell)

Bash 提供了像 Korn Shell 一样的命令行编辑,像 C Shell 一样的文件名补全和许多其它的高级功能。许多用户认为 Bash 集 Korn Shell 和 C Shell 的优点于一身。在 Linux 和 Mac OS X 系统下,Bash 是默认的 Shell。

Tcsh(T C Shell)

Linux 系统推广了 Tcsh。Tcsh 扩展了传统的 csh,增加了命令行编辑、文件名补全和其它功能。例如,当你按下Tab键后,Tcsh 会补全文件和目录名(与 Bash 中的按键相同)。旧的 C Shell 不支持这项功能。

什么是 Shell 脚本呢?

Shell 脚本是包含一条或多条命令的文本文件。在 Shell 脚本中,Shell 程序假定文本文件的每一行是一条不同的命令。这些命令的大部分就和你在 Shell 窗口手动输入的一样。

为什么要使用 Shell 脚本呢?

Shell 脚本被用来自动化管理任务、简化复杂的配置细节,并且充分运用操作系统的性能。有了组合不同命令的能力就可以创造新命令了,从而增加操作系统的价值。此外,结合使用 Shell 与图形化桌面环境,可以兼得二者之长。

从系统管理员的角度看,日复一日的重复工作可以使用 Shell 脚本来实现自动处理,那就可以节约时间从事其它高质量的工作。

创建第一个 Shell 脚本

在当前工作目录下创建一个名为myscript.sh的文本文件,所有的 Shell 脚本都有.sh的扩展名(LCTT 译注:Linux 下根本没有扩展名一说,没有这个扩展一样是可以执行的)。脚本的第一行是#!/bin/sh#!/bin/bash,因为#符号被称作 “hash” 并且!符号被称作 “bang” 故被称为 shebang(释伴)。至于/bin/sh/bin/bash则指出了命令将被 Sh 还是 Bash shell 执行。

以下就是myscript.sh的内容:

#!/bin/bash# Written by LinuxTechiechoecho "Current Working Directory: $(pwd)"echoecho "Today" Date & Time: $(date)"DISK=$(df -Th)echoecho "Disk Space on System:"echo "$DISK"

上方的脚本将会展示当前工作目录、今天的日期与时间,还有磁盘空间。我们需要用到echo 命令和其它Linux 命令来实现这个脚本。

使用如下的chmod 命令来给文件增加执行权限:

$ chmod a+x myscript.sh

现在来执行脚本:

$ sh myscript.sh或$ ./myscript.sh

注意:在当前目录下执行当前目录下的 Shell 脚本,须使用./<脚本名>方式,如下所示:

在 Shell 脚本中获取用户输入

read命令用来获取用户的键盘输入,并且将之赋值给一个变量。echo命令用来展示内容。

让我们更改上方的脚本以使之获取输入:

#!/bin/bash# Written by LinuxTechiread -p "Your Name: " NAMEechoecho "Today" Date & Time: $(date)"echoread -p "Enter the file system:" DISKecho "$(df -Th $DISK)""

现在,再执行脚本试试,这回应该会有输入信息的提醒:

$ ./myscript.shYour Name: Pradeep KumarToday" Date & Time: Sat 15 Oct 05:32:38 BST 2022Enter the file system:/mnt/dataFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data

完美,上方的输出表明脚本有输入提醒,并加工处理了相应的数据。

本文结束。希望对你是有用的。非常欢迎任何的疑问、反馈。

标签:

如何入门 Linux Shell 脚本编写|世界今头条

来源:Linux中国 2023-05-22 09:31:48

聚焦川渝板块丨宏达股份太极集团创8年最大周涨幅纪录|即时焦点

来源:上游新闻 2023-05-22 08:46:49

视窗点歌系统9.0破解版 视窗

来源:城市网 2023-05-22 08:02:37

环球热议:洞天福地三清山(行天下)

来源:人民日报海外版 2023-05-22 07:12:31

携手青春云游 感受幸福旅程|世界快消息

来源:中国青年报 2023-05-22 06:00:36

今日报丨移动上网卡资费_上网卡资费

来源:互联网 2023-05-22 03:59:23

青蛙的拼音_青蛙的拼音及解释

来源:互联网 2023-05-22 01:02:23

凭实力“圈粉” 靠技术“破局” 国产猕猴桃经济价值不断提升

来源:杭州网 2023-05-21 22:03:10

深圳市创业补贴申请2023和深圳创业补贴失业登记要求_天天消息

来源:深圳创业补贴iiO2 2023-05-21 21:00:17

色度抠图是什么意思_抠图是什么意思-热门看点

来源:互联网 2023-05-21 19:56:22

世界消息!中文翻译韩文名字在线_中文翻译韩文名字

来源:互联网 2023-05-21 19:03:39

带状疱疹的泡能挑开吗_带状疱疹的泡可以挑破吗 环球最新

来源:互联网 2023-05-21 17:45:11

今日金条回收价格多少钱一克(2023年05月21日)_资讯

来源:指股网 2023-05-21 16:59:14

汤放冰箱能保存多久 汤放冰箱能保存多长时间_全球通讯

来源:伊秀经验网 2023-05-21 15:42:51

天天观热点:重庆垫江93个重点项目集中开工竣工——切实助企破堵点解难题

来源:中国经济网-《经济日报》 2023-05-21 14:59:17

海口市妇幼保健院儿科哪个医生好_海口市妇幼保健院|天天快讯

来源:互联网 2023-05-21 13:58:42

无锡电动自行车专利申请量地级市第三_天天观察

来源:无锡日报 2023-05-21 12:26:21

崔永熙美国苦练,18岁小将意大利斩获最佳球员,赵继伟称赞弗格!_焦点资讯

来源:体育夜侃 2023-05-21 11:16:39

今年以来我国重大水利工程新开工15项 一批重大水利工程建设取得新进展

来源:新华网 2023-05-21 10:14:48

台湾屏东飞龙瀑布溯溪团遇大雨被困,传2死3失踪

来源:星岛环球网 2023-05-21 09:10:45

山东五莲县:绿色颜值转为金色价值

来源:经济日报 2023-05-21 08:24:35

吃了羊肉不能吃柿子吗

来源:南方养生网 2023-05-21 07:27:33

热议:新房佣金合同范本(通用12篇)

来源:互联网 2023-05-21 06:09:04

罗振玉_关于罗振玉介绍_环球热点

来源:互联网 2023-05-21 03:47:39

精彩!2023贵州省中小学校园啦啦操大赛(安顺站)开赛了 当前资讯

来源:掌上安顺 2023-05-21 00:18:38

结合满意度意见征询,城投公路找准高速出行服务着力点|全球速递

来源:文汇 2023-05-20 22:18:43

天天快资讯:新乡再迎盛会!明日启幕,亮点抢先看

来源:大河财立方 2023-05-20 21:05:37

上海多所高校陆续恢复对外开放|每日看点

来源:央视新闻 2023-05-20 20:02:13

买卖千万房屋收27万中介费!中介费能不能降下来?各方开会“探讨” 今日热门

来源:每日经济新闻 2023-05-20 19:06:26

丰元股份(002805):2023-004投资者关系活动记录表

来源:中财网 2023-05-20 17:58:12

Copyright   2015-2022 太平洋知识产权网 版权所有  备案号:豫ICP备2022016495号-17   联系邮箱:93 96 74 66 9@qq.com