Linux Shell——迭代循环

作者: 码匠安徒生 | 来源:发表于2017-04-28 17:10 被阅读169次

学习是自己的事情。

scripts are for lazy people.

Linux Shell

循环语句是任何一门语言都不能缺失的部分。shell 里也是一样,只是语法不太一样。如果学过其他的编程语言,就很容易掌握。

1. for 循环

for 循环的语法疾结构为:

for f in * ; do
    statement "$f"
done

这里的 f 就是迭代的元素,* 可以是一个数组或是 list,也可以是命令管道。
还有另外一种写法:

for f in * 
do
    statement "$f"
done

可以根据自己的喜好选择一种写法。
新建一个脚本文件,打印出所有输入的参数:

#!/bin/bash
echo "You are using $(basename $0)"
for n in $*
do
    echo "Hello $n"
done

exit 0

运行结果如下:

for loop

在循环中,可以使用continuebreak关键字,具体用法与其他语言里是一样的。continue表示在循环体内,跳过当前循环,执行下次的循环;而break表示退出整个循环,后面的循环和代码不再执行。
看具体看例子。

$ for f in * ; do
    [ -d "$f" ] || continue
         chmod 3777 "$f"
done

如果是目录,添加权限;如果不是,跳过当前循环,continue 后面代码不再执行,而是直接执行下次循环。

$ for f in * ; do
    [ -d "$f" ] && break
done

echo "We have found a directory $f"

上面的脚本,在循环中一旦发现目录,则立即停止循环并退出。

2. while 循环

while 循环可以说是 for 循环的一个变体,只要特定条件为真,while 语句就会执行。具体看例子,

COUNT=10
while (( COUNT >= 0 )) ; do
    echo -e "$COUNT \c"
    (( COUNT-- ))
done ;

 echo

3. until 循环

until循环与while语句的功能正好相反:只要特定条件为假,它就重复。下面是一个与前面的 while 循环具有同等功能的 until 循环。

COUNT=10
until (( COUNT < 0 )) ; do
    echo -e "$COUNT \c"
    (( COUNT-- ))
done ; 

echo

实例联系

现在,我们做一个用户选择界面,这样,根据提示输入不同的参数来执行不同的功能,这里我们需要用到while循环,和前面讲过的case条件选择。

#!/bin/bash

while true ; do
    clear
    echo "Choose an item: a, b or c"
    echo "a: Backup"
    echo "b: Display Calendar"
    echo "c: Exit"
    
    read -sn1
        case "$REPLY" in
        a) tar -czvf $HOME/backup.tgz ${HOME}/JavaSource;;
        b) cal;;
        c) exit 0;;
        esac
    read -n1 -p "Press andy key to continue"
done

根据提示,如果输入 a 的话,则把 home 目录下的 JavaSource 目录压缩打包。
输入b,显示当前月份。
输入c,程序退出。

相关文章

  • Linux Shell——迭代循环

    学习是自己的事情。 scripts are for lazy people. 循环语句是任何一门语言都不能缺失的部...

  • Linux Shell:Shell循环语句

    摘要:Linux,Shell Shell中常用循环有for,while Shell循环语法结构 (1)for循环语...

  • lx4.shell2

    shell2 shell函数 字符隔断和迭代器 IFS 流程控制 循环

  • linux系统shell循环

    拷贝grub文件到其他节点机,执行跟新grub 1.创建shell脚本bat.sh内容如下: #!/bin/bas...

  • shell

    1.双重循环 2.循环脚本 3.循环脚本 代码内容 文件内容 4.Linux shell中2>&1的含义解释 (全...

  • shell(一)

    程序的三大结构: 顺序、循环、分支shell是一个用C语言编写的程序,他是用户使用LInux的桥梁,shell既是...

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • Linux Shell脚本之for循环

    for循环是编程语言中一种开界的循环语句,而循环语句[1] 由循环体及循环的终止条件两部分组成。 for 循环的...

  • linux的shell篇 ----for循环

    简单介绍 我们在写linux脚本的时候经常会有这种场景,比如说循环几次,比如说根据某个文件的每行进行一些操作,这些...

  • linux shell 流程控制语句

    linux shell 有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语...

网友评论

    本文标题:Linux Shell——迭代循环

    本文链接:https://www.haomeiwen.com/subject/bgnozttx.html