linux迭代同步文件,Linux Shell——迭代循环
学习是自己的事情。
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
在循环中,可以使用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,程序退出。
linux迭代同步文件,Linux Shell——迭代循环相关推荐
- linux的头文件下载,Linux内核头文件(linux headers)
更新 Linux 内核头文件(linux headers) 三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文 ...
- linux新建脚本文件,linux shell脚本编程2—修改文件时间和创建新文件即touch命令的使用...
在使用ls命令时,每个文件在Linux下面都会记录3个主要的修改时间: modification time(mtime,修改时间):当该文件的"内容数据"更改时,就会更新这个时 ...
- linux scp 同步文件夹,Solaris下用scp自动同步文件
1. scp同步文件脚本 //syntest.sh #!/bin/bash # Setting cdm path is used to store client software host_dir=& ...
- linux云同步文件夹,在Linux系统上备份Dropbox同步文件夹的方法
本文介绍在Linux系统上备份Dropbox同步文件夹的方法,确保Dropbox文件夹中的数据安全的一种好方法是创建本地备份.在Linux上,有很多不同的方法可以创建备份,因此我们将介绍简单实用的方法 ...
- linux+传输文件时卡住,linux - rsync 同步文件时卡住不动
具体表现是:我使用rsync往服务器同步文件,我设置了超时timeout=5(不设置这个值也会出现这样的问题),然后运行大约1小时后,不断出现timeout的错误提示,出现大约10多个后,程序卡在rs ...
- linux nc 传送文件,Linux下nc命来实现文件传输
发送端: cat test.txt | nc -l -p 6666 或者nc -l -p 6666 < test.txt 有些版本不要在 -p [监听6666端口,等待连接](设发送端IP为10 ...
- linux dd 截文件,Linux使用dd命令快速生成大文件(转)
dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...
- Linux用于账号文件,linux的文件及账号管理
正如linux的准则描述的那样:Linux一切皆文件.当我们创建文件时,都会有一个默认属性,这与umask有关.我们知道可以可以使用使用数字来表示属性:r::4,w:2,x:1.而一般情况下用户建立的 ...
- linux管理Windows文件,Linux与Windows互传文件,用户组管理和用户管理
一.与Windows互传文件 linux和windows互传文件,需要使用Xshell,Linux系统需要安装lrzsz包. yum install -y lrzsz //linux安装lrzsz包 ...
最新文章
- 实例 - 购物车 (列表、循环)
- 两个列表之间移动数据
- 捷易拍sdk开发指南.doc_每个Android开发都必须知道的利器
- Spring-framework应用程序启动loadtime源码分析笔记(二)——@Transactional
- pc控制iphone的软件_嗑技热点 | 苹果M1芯片:对PC行业的降维打击
- 机器学习——One-Hot编码
- laravel连接mysql8_php – 如何使用laravel运行MySql 8?
- python讲统计学 书籍_数据分析最需要的12本中文书(从入门到高阶)
- 设置页数自增页眉/页脚——Word中page域代码的使用
- Python使用Opencc库完成字符繁简体转换
- 域名Whois信息查询接口
- 米世金《货币经济学》思维导图 附自制PPT
- 2019 年第 28 周 DApp 影响力排行榜 | TokenInsight
- 景深与光圈与焦距关系
- 震惊!网瘾少年在冒险岛的逆袭之路
- 计算机视觉-棋盘格标定
- 计算机培训ppt教案,教师计算机培训教案.ppt
- Long monitor contention with owner
- PL/SQL Developer 14 配置
- 【9】核心易中期刊推荐——图像视觉与图形可视化
热门文章
- editview只输入英文_入门小百科丨如何在电脑/手机输入日语
- 3d 多相机分流_徕卡电影四摄的华为Mate30 Pro到底有多猛?开箱了解一下!
- P9:卷积神经网络的工程实践技巧
- 【题解】(图论) —— POJ 0719:拓扑排序
- 如何调用gitee仓库真实图片链接
- 【实用】Putty常见错误汇总
- html元素不可见的三种方式
- LLVM和clang
- js中的getBoundingClientRect()函数
- c/c++教程 - 2.4.2.1~2 对象的初始化和清理,构造函数和析构函数,构造函数的分类和调用(有参构造,无参构造,普通构造,拷贝构造,括号法,显示法,隐式转换法,匿名对象)