158文章网欢迎您
您的位置:158文章网 > 范文示例 > Bash技巧:详解 while 和 until 循环命令的用法

Bash技巧:详解 while 和 until 循环命令的用法

作者:158文章网日期:

返回目录:范文示例

今天小编给各位分享while的用法的知识,文中也会对其通过Bash技巧:详解 while 和 until 循环命令的用法和bash常用命令等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:
  • Bash技巧:详解 while 和 until 循环命令的用法
  • bash常用命令
  • 10 分钟学会Linux常用 bash命令
  • While、When、Until的区别和用法
  • 一、Bash技巧:详解 while 和 until 循环命令的用法

    在 Linux 的 Bash shell 中, while 复合命令 (compound command) 和 until 复合命令都可以用于循环执行指定的语句,直到遇到 false 为止。查看 man bash 里面对 while 和 until 的说明如下:

    while list-1; do list-2; doneuntil list-1; do list-2; doneThe while command continuously executes the list list-2 as long as the last command in the list list-1 returns an exit status of zero.

    The until command is identical to the while command, except that the test is negated; list-2 is executed as long as the last command in list-1 returns a non-zero exit status.

    The exit status of the while and until commands is the exit status of the last command executed in list-2, or zero if none was executed.

    可以看到,while 命令先判断 list-1 语句的最后一个命令是否返回为 0,如果为 0,则执行 list-2 语句;如果不为 0,就不会执行 list-2 语句,并退出整个循环。

    即,while 命令是判断为 0 时执行里面的语句。

    跟 while 命令的执行条件相反,until 命令是判断不为 0 时才执行里面的语句。

    注意:这里有一个比较反常的关键点,bash 是以 0 作为 true,以 1 作为 false,而大部分编程语言是以 1 作为 true,0 作为 false,要注意区分,避免搞错判断条件的执行关系。

    在 bash 中,常用 test 命令、[ 命令、[[ 命令来判断条件,但是 while 命令并不限于使用这几个命令来进行判断,实际上,在 while 命令后面可以跟着任意命令,它是基于命令的返回值来进行判断,分别举例说明如下。

    下面的 while 循环类似于C语言的 while (--count >= 0) 语句,使用 [ 命令来判断 count 变量值是否大于 0,如果大于 0,则执行 while 循环里面的语句:
    count=3while [ $((--count)) -ge 0 ]; do  # do some thingdone
    下面的 while 循环使用 read 命令读取 filename 文件的内容,直到读完为止,read 命令在读取到 EOF 时,会返回一个非 0 值,从而退出 while 循环:
    while read fileline; do # do some thingdone < filename
    下面的 while 循环使用 getopts 命令处理所有的选项参数,一直处理完、或者报错为止:
    while getopts "rich" arg; do # do some thing with $argdone

    如果要提前跳出循环,可以使用 break 命令。查看 man bash 对 break 命令说明如下:

    break [n]Exit from within a for, while, until, or select loop.

    If n is specified, break n levels. n must be ≥ 1. If n is greater than the number of enclosing loops, all enclosing loops are exited.

    The return value is 0 unless n is not greater than or equal to 1.

    即,break 命令可以跳出 for 循环、while 循环、until 循环、和 select 循环。

    一、bash常用命令

    alias: 为一个命令定义一个别名;
    unalias:删除指定的别名;
    bg: 将任务放到后台运行;
    fg:将作业放到前台运行;
    break: 跳出for、while、select或until循环;
    continue: 继续执行for、while、select或until循环的下一次迭代;
    builtin: 执行指定的shell内建命令;
    cd: 切换为指定的目录;
    dirs: 出当前存储目录的列表;
    echo:将指定字符串输出;
    export:设置子shell进程可用的变量;
    jobs:输出提交的任务;
    history:命令历史记录;
    kill:杀掉指定进程;
    pwd:显示当前工作目录的路径名;
    set:设置并显示环境变量的值;
    unset:删除指定的环境变量;
    source:读取并执行指定文件中的命令;
    times:显示累计的用户和系统时间;
    cat:列出指定文件的内容;
    chmod:为指定文件或目录修改权限;
    date:显示日期;
    df:显示所有挂载设备的当前磁盘空间使用情况;
    du:显示指定文件路径的磁盘使用情况;
    file:查看文件类型;
    find:对文件进行递归查找;
    grep:在文件中查找字符串;
    getopt:解析命令选项;
    gzip:采用Lempel-Ziv编码的GNU项目压缩工具;
    head:显示指定文件内容的开头部分;
    help:显示bash内建命令的帮助页面;
    link:创建一个指向文件的链接;
    ls:列出目录内容;
    man:显示指定命令的教程;
    mkdir :在当前目录下创建文件夹;
    more:列出指定文件的内容,在每屏数据后暂停下来;
    sort:基于指定的顺序组织数据文件中的数据;
    tail:显示指定文件内容的末尾;
    tar:将数据和目录归档到单个文件中;
    top:显示任务活动进程;
    touch:新建一个空文件;
    whereis:显示指定命令的相关文件;
    which:查找可执行文件的位置;
    who:显示当前系统中的登录用户;
    whoami:显示当前用户的用户名

    二、10 分钟学会Linux常用 bash命令

    显示所有的环境变量,如果你想获取某个变量的详细信息,使用 echo $VARIABLE_NAME .

    Example:

    whereis使用系统自动构建的数据库来搜索可执行文件,源文件和手册页面。

    Example:

    它在环境变量PATH指定的目录中搜索可执行文件。此命令将打印可执行文件的完整路径。

    Example:

    清除窗口上的内容。

    列出您的文件。 ls 有很多选项: -l 列出“长格式”的文件,其中包含文件的确切大小,拥有该文件的人员,有权查看该文件,以及何时进行上次修改。 -a 列出所有文件,包括隐藏文件。有关此命令的更多信息,请检查此链接。

    Example:

    创建或更新您的文件。

    Example:

    它可以在UNIX或Linux下用于以下目的。

    显示文件的第一部分(用空格移动并键入q以退出)。

    输出文件的前10行。

    输出最后10行文件。用于-f在文件增长时输出附加数据。

    将文件从一个位置移动到另一个位置。

    filename1 文件的源路径, filename2 是目标路径。

    将文件从一个位置复制到另一个位置。

    filename1 文件的源路径, filename2 是目标路径。

    删除文件。在目录上使用此命令会给您显示一个错误: rm: directory: is a directory 。 为了删除目录,你必须传递 -rf 去递归删除目录中的所有内容。

    比较文件,并列出他们的差异。

    让您更改文件的读取,写入和执行权限。

    压缩文件。

    解压缩gzip压缩的文件。

    让你查看gzip压缩文件,而不需要gunzip它。

    打印文件。

    查看打印机队列。

    Example:

    从打印队列移除某些内容。

    awk是处理文本文件最有用的命令。它一行一行地在整个文件上运行。默认情况下,它使用空格分隔字段。awk命令最常用的语法是

    让我们采取以下文件 /etc/passwd 。以下是此文件包含的示例数据:

    所以现在让我们从这个文件只获取用户名。 -F 指定在我们要基于哪个分隔字段。在我们的例子中 : 。 { print $1 } 意味着打印出第一个匹配字段。

    运行上述命令后,您将获得以下输出。

    有关如何使用 awk 的更多细节,请查看以下链接。

    查找文件内的文本。您可以使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。

    Example:

    您还可以通过使用 -i 选项强制grep忽略单词大小写。 -r 可用于搜索指定目录下的所有文件,例如:

    -w 只搜索单词。有关 grep 详细信息,请查看以下链接。

    告诉你一个文件中有多少行,多少单词和多少字符。

    Example:

    7459 是行数, 15915 是单词数, 398400 是字符数.

    用于过滤和转换文本的流编辑器。

    example.txt

    用连字符替换所有空格

    使用"d"替换所有的数字

    排序文本文件的行

    example.txt

    sort example.txt

    随机化一个排序的example.txt

    报告或省略重复的行

    example.txt

    只显示example.txt的唯一行(首先你需要排序,否则看不到重叠)

    显示每行的唯一项,并告诉我找到了多少个实例

    从每行文件中删除部分。

    example.txt

    显示第2,7和9栏的空格作为分隔符

    显示一行文字

    显示 "Hello World"

    用字母之间的换行显示 "Hello World"

    简单的最佳文本格式化程序

    example: example.txt (1 line)

    将example.txt的行输出为20个字符的宽度

    翻译或删除字符

    example.txt

    把所有小写字母变成为大写

    把所有的空格变成换行符

    显示文件的行数

    example.txt

    带行号显示 example.txt

    打印匹配模式的行 - 扩展表达式(别名为:'grep -E')

    example.txt

    在其中显示“Lorem”或“dolor”的行

    打印匹配模式到的行 - FIXED模式匹配(别名为:'grep -F')
    example.txt

    在example.txt中找到具体的字符串'(Lorem | doloar)'

    生成一个新的目录。

    执行这个,从一个目录转移到另外一个目录。

    将你移动到主目录。此命令接受可选的 dirname ,将你移动到该目录。

    告诉你你目前所在的目录。

    ssh (SSH client) 是一个用来在登录到远程机器并执行的命令的程序。

    此命令还接受 -p 可用于连接到特定端口的选项。

    返回当前登录用户名。

    允许当前登录的用户更改其密码。

    显示您的磁盘配额。

    显示当前日期和时间。

    显示月份的日历。

    显示当前的正常运行时间。

    显示谁在线

    Displays information about user.

    显示内核信息。

    显示指定命令的手册。

    显示磁盘使用情况。

    显示文件名中文件和目录的磁盘使用情况(du -s只给出一个总数)。

    列出您最后登录的指定用户。

    列出您的进程。

    使用您所提供的ID杀死(结束)进程。

    用名称杀死所有进程。

    显示当前活动的进程。

    列出停止的或后台工作的Job; 恢复在后台停止的Job。

    前台化最近的Job。
    Brings the most recent job in the foreground.

    Pings主机并输出结果。

    获取域的whois信息。

    获取域的DNS信息。

    下载文件。

    在本地主机和远程主机之间或两台远程主机之间传输文件。

    从本地主机复制到远程主机

    从远程主机复制到本地主机

    此命令还接受 -P 选项可用于连接到特定的端口。

    在bash中你将编写第一行脚本文件,被叫做 shebang 。任何脚本中的这一行来确定脚本的执行能力,如独立的可执行文件,而不是在终端中预先键入sh,bash,python,php等。

    Example:

    上面的一行创建一个变量str并给它赋值“hello world”。通过 $ 放在变量名的开头来检索变量的值。

    Example:

    像其他语言一样,bash也有数组。数组是包含多个值的变量。数组的大小没有最大限制。bash中的数组为零。第一个元素被索引为元素0.在bash中创建数组有几种方法。以下给出了哪些。

    Examples:

    要在特定索引处显示值,请使用以下语法:

    如果没有提供索引,则假定为数组元素0。要了解数组中有多少值,请使用以下语法:

    Bash也支持三元条件。下面是一些例子。

    检查一些关于如何操作字符串的语法

    Example:

    当您运行上述示例时,该hello函数将输出“world!”。上述两个功能 hello 和 say 是相同的。主要区别是功能 say 。此功能打印其接收到的第一个参数。函数内的参数以与给脚本的参数相同的方式进行处理。

    bash中的条件语句与其他编程语言相似。条件有许多形式,如最基本的形式是 if 表达式 then 语句,其中语句只有在表达式为真时执行。

    有时,如果条件变得混乱,所以你可以使用相同的条件 case statements 。

    Expression Examples:

    bash 中有三种不同类型的循环。 for , while 和 until .

    for 语法:

    while 语法:

    until 语法:

    bash_profile 可以通过运行后面的命令打开。 nano ~/.bash_profile

    nano ~/.bashrc

    source ~/.bashrc
    cd hotellogs

    您可以通过传递不同的选项来轻松地调试bash脚本bash。例如-n,不会运行命令并仅检查语法错误。-vecho命令在运行它们之前。-x命令行处理后的echo命令。

    三、While、When、Until的区别和用法

    while 的用法
    1 连词 引导时间状语从句,意为 当......时候 while 引导的句子的谓语部分必须是可以延续的动词或结构。
    My mother is cooking while my father is reading the newspaper .

    She fell asleep while she was doing her homework .
    2 名词 意为 一会儿 after a while for a while
    After a while,she came back .

    when的用法
    when 连词 意为 当...时候 ...这时.... 引导时间状语从句,与while 不同,when 引导的句子的谓语部分可以是短暂性的也可以是持续性的动词或结构。
    She fell asleep when she was doing her homework .
    I was walking in the street when I saw a wallet on the ground .
    I saw her singing in the room when I passed by her room .

    until 的用法
    1 until是连词 引导时间状语从句

    两个句型: ......(肯定句)until.... ...否定句)until ....

    They worked until it was dark .他们一直工作凌晨一点。
    He didn't go until the boy's parents came back .直到那个男孩的父母回来了,他才走。
    2 介词 They kept him waiting until o'clock in the afternoon .

    关于while的用法的问题,通过《10 分钟学会Linux常用 bash命令》、《While、When、Until的区别和用法》等文章的解答希望已经帮助到您了!如您想了解更多关于while的用法的相关信息,请到本站进行查找!

    本文标签:while的用法(2)

    相关阅读

    关键词不能为空

    范文示例_作文写作_作文欣赏_故事分享_158文章网