[Bash Programming] loop

CONDITION:

bash命令:

用命令的执行状态结果;

成功:true

失败:flase

成功或失败的意义:取决于用到的命令;

单分支:

if CONDITION; then

if-true

fi

双分支:

if CONDITION; then

if-true

else

if-false

fi

多分支:

if CONDITION1; then

if-true

elif CONDITION2; then

if-ture

elif CONDITION3; then

if-ture

...

esle

all-false

fi

逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束;

示例:用户键入文件路径,脚本来判断文件类型;

#!/bin/bash

#

read -p "Enter a file path: " filename

if [ -z "$filename" ]; then

echo "Usage: Enter a file path."

exit 2

fi

if [ ! -e $filename ]; then

echo "No such file."

exit 3

fi

if [ -f $filename ]; then

echo "A common file."

elif [ -d $filename ]; then

echo "A directory."

elif [ -L $filename ]; then

echo "A symbolic file."

else

echo "Other type."

fi

注意:if语句可嵌套;

循环:for, while, until

循环体:要执行的代码;可能要执行n遍;

进入条件:

退出条件:

for循环:

for 变量名  in 列表; do

循环体

done

执行机制:

依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束;

示例:添加10个用户, user1-user10;密码同用户名;

#!/bin/bash

#

if [ ! $UID -eq 0 ]; then

echo "Only root."

exit 1

fi

for i in {1..10}; do

if id user$i &> /dev/null; then

echo "user$i exists."

else

useradd user$i

if [ $? -eq 0 ]; then

echo "user$i" | passwd --stdin user$i &> /dev/null

echo "Add user$i finished."

fi

fi

done

列表生成方式:

(1) 直接给出列表;

(2) 整数列表:

(a) {start..end}

(b) $(seq [start [step]] end)

(3) 返回列表的命令;

$(COMMAND)

(4) glob

(b) 变量引用;

[email protected], $*

时间: 2024-10-16 06:28:16

[Bash Programming] loop的相关文章

Bash For Loop Examples

How do I use bash for loop to repeat certain task under Linux / UNIX operating system? How do I set infinite loops using for statement? How do I use three-parameter for loop control expression? A 'for loop' is a bash programming language statement wh

[Bash Programming] Variable

变量类型: 数据存储格式.存储空间大小.参与运算种类: 字符型 数值型: 整型 浮点型 强类型:定义变量时必须指定类型.参与运算必须符合类型要求:调用未声明变量会产生错误: 弱类型:无须指定类型,默认均为字符型:参与运算会自动进行隐式类型转换:变量无须事先定义可直接调用: bash bash中的变量的种类: 根据变量的生效范围等标准: 本地变量:生效范围为当前shell进程:对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效: 环境变量:生效范围为当前shell

The trap of Bash trap

Can you spot the problem with the following Bash script? resource_created="false" function cleanup() { echo "Exit code: $?" if [[ $resource_created == "true" ]]; then echo "Clean up resource" else echo "Nothing

Shell脚本初级练习篇

Shell脚本初级练习篇 脚本1 作用:创建10个1M的文件 [[email protected] script]# cat make_file.sh  #!/bin/bash # for i in $(seq 1 10);do     dd if=/dev/zero of=/data/test/test"${i}" bs=1M count=1 done 脚本2 作用:移走/data/test目录下大于100K的普通文件到/tmp目录下 [[email protected] scrip

一些linux嵌入式资源下载地址(转)

linux内核源代码情景分析 非扫描版 上下册合订版 字清楚 带书签 1575页 pdfhttp://download.csdn.net/source/2002579*************************************************************linux设备驱动开发详解 pdf,针对ARM9 s3c2410 经典 宋宝华 http://download.csdn.net/source/3135744随书光盘:http://download.csdn.n

Shell for循环

与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表中的下一个值赋给变量. in 列表是可选的,如果不用它,for 循环使用命令行的位置参数. 例如,顺序输出当前列表中的数字: #!/bin/bash for loop in 1 2 3 4 5 do echo "The value is:$l

shell学习之for循环语句【初学者】

前言:日常系统管理工作中有大量需要重复运行的指令,shell编程提供了for.while.until.select循环语句以实现特定指令的反复执行功能,在所有的循环语句中,变量必须要有初始值,每次运行命令序列前都需要对条件进行过滤,满足条件才会运行命令,否则不执行相关操作.下面介绍的就是for循环语句的两种语法格式. for 循环每次处理依次列表内信息,直至循环耗尽.相对于while.until的循环方式是必须符合某个条件的状态,for这种语法是已经知道要进行几次循环的状态. 语法格式1: fo

Linux运维系统工程师系列---14

进程管理 什么是程序?program 程序:完成某个功能的一段代码的集合 什么是进程? 进程是程序运行之后,在内存中的状态 如何产生一个进程? 执行一个程序或者命令就可以产生一个进程 提到进程,不得不说一个目录 /proc:是一个虚拟的文件系统,这个目录下的文件和目录都是保存在内存里的 [[email protected] ~]# ll -d /proc/ dr-xr-xr-x. 157 root root 0 Oct 10 00:33 /proc/ 大小是0,根本没有占用磁盘空间,就是假的.

[it-ebooks]电子书列表

#### it-ebooks电子书质量不错,但搜索功能不是很好 #### 格式说明  [ ]中为年份      ||  前后是标题和副标题  #### [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Objective-C to develop iPhone games http://it-ebooks.info/book/3544/ Learning Web App Developmen