linux迭代同步文件,Linux Shell——迭代循环

学习是自己的事情。

scripts are for lazy people.

6a54e5e85b85

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

运行结果如下:

6a54e5e85b85

for loop

在循环中,可以使用continue和break关键字,具体用法与其他语言里是一样的。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,程序退出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值