Linux Shell编程:until语句与Shell脚本解析

需积分: 10 6 下载量 139 浏览量 更新于2024-08-16 收藏 2.22MB PPT 举报
"该资源是一份关于Linux环境下Shell脚本编程的PPT,重点讲解了until语句的用法,以及Shell的基本概念和类型。" 在Linux系统中,Shell脚本是实现自动化任务的重要工具,它允许用户编写一系列命令来执行特定任务。`until`语句是Shell编程中的一个循环结构,与`while`语句类似,但它们的逻辑相反。`while`语句在条件为真时执行循环体,而`until`语句则在条件为假时执行循环体。 `until`语句的基本语法如下: ```bash until condition do statements done ``` 在这里,`condition`是一个测试表达式,`statements`是循环体中要执行的命令或语句。当条件不满足(即条件的返回值为非零,表示失败)时,`until`循环会执行循环体内的命令。一旦条件变为真,循环就会停止。 例如,给出的示例展示了如何使用`until`监控某个用户登录情况: ```bash until who | grep “$1” > /dev/null do sleep 60 done echo –e ‘\a’ echo “*** $1 has just logged in***” ``` 这段脚本会检查用户 `$1` 是否已登录。如果用户尚未登录,`grep` 命令找不到匹配的行,`until` 条件为假,循环继续,每分钟(`sleep 60`)检查一次。一旦用户登录,`grep` 将找到匹配行,条件变为真,循环结束,然后发送警报声音 (`echo –e ‘\a’`) 和通知 (`echo “*** $1 has just logged in***”`)。 Shell还有多种类型,主要分为Bourne Shell家族和C Shell家族。Bourne Shell包括最初的`sh`,改进版的`ksh`(Korn Shell)和广泛使用的`bash`(Bourne-Again SHell),这些Shell更偏向于编程。C Shell包括`csh`和`tcsh`(TENEX/TOPS C Shell),它们提供了更接近C语言风格的语法和更多交互式特性,如命令历史记录、别名和作业控制。 在系统中,不同类型的Shell通常存放在`/bin`目录下,如`/bin/bash`,`/bin/csh`等。用户可以根据个人喜好和需求选择或切换不同的Shell。KornShell(ksh)是AT&T Bell实验室的David Korn开发的,它结合了C Shell的交互特性与Bourne Shell的编程能力,使得用户在编程和交互使用上都有更好的体验。 了解和掌握`until`语句及其在不同Shell中的应用,有助于提升Linux环境下的自动化脚本编写能力,从而提高工作效率。对于系统管理员和程序员来说,熟悉Shell脚本语言是日常工作中不可或缺的技能。