`

shell4

 
阅读更多
上一篇Linux shell脚本基础学习中我们讲了Linux shell脚本中控制流程的if 、select、case ,这里接着介绍Linux shell脚本控制流程的loop和引号,控制流程这部分内容比较多,还有一部分内容是关于here document的。

4.loop

loop表达式:

while ...; do

....

done

while-loop 将运行直到表达式测试为真。will run while the expression that we test for is true.

关键字"break" 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。

for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量:

for var in ....; do

....

done

在下面的例子中,将分别打印ABC到屏幕上:

#!/bin/sh

for var in A B C ; do

echo "var is $var"

done

下面是一个更为有用的脚本showrpm,其功能是打印一些RPM包的统计信息:

#!/bin/sh

# list a content summary of a number of RPM packages

# USAGE: showrpm rpmfile1 rpmfile2 ...

# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm

for rpmpackage in $*; do

if [ -r "$rpmpackage" ];then

echo "=============== $rpmpackage =============="

rpm -qi -p $rpmpackage

else

echo "ERROR: cannot read file $rpmpackage"

fi

done

这里出现了第二个特殊的变量$*,该变量包含了所有输入的命令行参数值。

如果您运行showrpm openssh.rpm w3m.rpm webgrep.rpm

此时 $* 包含了 3 个字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.

5. 引号

在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓扩展的意思是程序会把通配符(比如*)替换成合适的文件名,它变量替换成变量值。为了防 止程序作这种替换,您可以使用引号:让我们来看一个例子,假设在当前目录下有一些文件,两个jpg文件, mail.jpg 和tux.jpg。

1.2 编译SHELL脚本

#ch#!/bin/sh mod +x filename

cho *.jpg ∪缓螅梢酝ü淙耄?./filename 来执行您的脚本。

这将打印出"mail.jpg tux.jpg"的结果。

引号 (单引号和双引号) 将防止这种通配符扩展:

#!/bin/sh

echo "*.jpg"

echo '*.jpg'

这将打印"*.jpg" 两次。

单引号更严格一些。它可以防止任何变量扩展。双引号可以防止通配符扩展但允许变量扩展。

#!/bin/sh

echo $SHELL

echo "$SHELL"

echo '$SHELL'

运行结果为:

/bin/bash

/bin/bash

$SHELL

最后,还有一种防止这种扩展的方法,那就是使用转义字符——反斜杆:

echo *.jpg

echo $SHELL

这将输出:

*.jpg

$SHELL

Linux shell脚本基础这里就到这里,控制流程还有一点here document的内容下次再分析。



分享到:
评论

相关推荐

    shell4安全终端模拟软件

    linux控制台工具,上传下载等操作都非常简单,用着不错

    android执行shell命令

    3. **使用第三方库**:有一些开源库,如`shell4android`或`BusyBox`,它们提供了更方便的API来执行shell命令,无需直接调用系统API。 4. **Android Terminal Emulator**:对于普通用户,可以在设备上安装终端模拟器...

    B shell与 C shell的区别

    4. shell编程语言:B shell的shell编程语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构,而C shell的shell编程语言较为简单。 5. 可移植性:B shell可以在所有的UNIX系统上运行,...

    msn shell4.22827

    MSN的插件软件,有隐身、加密、群组、动画功能

    JDK13-java-shell-user-guide.pdf

    4.错误检查:Java Shell提供了实时的错误检查功能,开发者可以实时地检查代码中的错误。 5.多语言支持:Java Shell支持多种语言,包括Java、Groovy、Python、Ruby等。 Java Shell的使用场景包括: 1.快速原型设计...

    Bourne Shell及shell编程

    Bourne Shell 及 shell 编程 Bourne Shell 是一个 Unix shell,开发于 Bell 实验室,由 Stephen Bourne 设计。Bourne Shell 是一个功能强大且灵活的 shell,它提供了许多有用的特性和功能,例如变量、条件测试、...

    Shell源码(Shell源码)

    Shell是Unix和Linux操作系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面,允许用户通过输入命令来执行系统功能。Shell不仅是一个命令行接口,还是一个强大的编程语言,用户可以编写脚本来自动化一...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    Shell编程中文手册.pdf

    本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell 编程可以让开发者更好地...

    shell变量与创建子shell详解

    Shell脚本是一种强大的编程工具,它在Unix和Linux操作系统中广泛应用于自动化和任务调度。在Shell脚本中,创建子Shell是一种常见的操作,它可以提供一个隔离的执行环境,使得在其中执行的命令和脚本不会影响到父...

    Windows Shell 编程.pdf

    Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对...

    shell.efi 启动

    4. **启动计算机**:保存设置并退出,电脑将尝试从U盘启动,并执行shell.efi。一旦shell启动,你就可以输入各种命令来管理硬件、加载操作系统映像或者进行故障排除。 UEFI shell提供了一系列内置命令,例如`fs0:`...

    Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...

    shell教程shell脚本编写方

    4. 在不中断前台操作的情况下,可通过后台方式运行其它命令。 5. 可以把系统命令、Shell 命令进行适当的组合,构成一个新命令。 6. 可以执行多种命令,包括 Shell 内部命令,Unix 系统命令,编译好的可执行文件甚至 ...

    SHELL十三问,PDF

    此外,Shell并非固定不变的,用户可以根据个人需求选择不同的Shell类型,常见的Shell包括Bourne Shell (`sh`)、Bourne-Again Shell (`bash`)、C Shell (`csh`)、T C Shell (`tcsh`) 和 Korn Shell (`ksh`)等。...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    4. **函数**:如何定义和调用自定义函数,以实现代码复用。 5. **输入/输出重定向**:如何改变命令的标准输入、输出和错误输出,实现文件操作和数据流的控制。 6. **管道和重定向**:利用管道(|)连接命令,实现...

    Visual Studio 2013 Shell 下载

    ### Visual Studio 2013 Shell 知识点解析 #### 一、Visual Studio Shell 概述 在软件开发领域,Visual Studio Shell 是一个极为重要的工具。它由微软推出,旨在为开发者提供一个灵活且可扩展的基础平台。通过这个...

    The C Shell tutorial

    4. **内置变量**:C Shell预定义了一些变量,用于控制shell的行为。 C Shell环境的自定义主要通过三个文件完成: - **.cshrc**:这是C Shell启动时读取的第一个文件,用于设置命令别名、定义变量等,每次启动C ...

    大数据技术之Shell.docx

    4. 赋予脚本执行权限,例如 chmod +x helloworld.sh 执行 Shell 脚本有两种方法: 1. 使用 bash 或 sh 命令,例如 bash helloworld.sh 或 sh helloworld.sh 2. 直接执行脚本,例如 ./helloworld.sh 或 /home/lxx/...

Global site tag (gtag.js) - Google Analytics