您的位置:首页 > 运维架构 > Shell

shell基础及流程控制语句之一for循环

2014-12-06 10:57 387 查看
shell脚本是学习linux的必修课,能帮助你快速完成一些复杂操作话虽如此毕竟也只是一些命令放到了一起罢了。shell能够提供一些内部命令,并且能够通过PATH环境变量来找到外部命令把命令提交给内核启动为进程。

在编写shell脚本时第一行必须为#!/bin/bash因为shell是解释型的语言需要一个解释器来运行它,而/bin/bash就是解释器,python也是解释型语言也需要解释器来运行。在写shell时所有以#开头的行都会被当做注释来处理(除了第一行的#!/bin/bash),shell脚本的命名通常为*.sh前面的*代表任意字符后缀为固定格式.sh

在编程语言中要经常使用变量来完成操作不然的话一个内容在脚本中出现15次你就要修改15次那岂不是要累死的节奏。所以使用变量的好处就是只修改变量里面的内容然后下面的内容都会被修改,那变量是什么。

变量可以理解为一个临时的只可存放一个数据的容器,而这个容器可以存放很多类型的数据如:字符型、数值型、布尔型,其中布尔型就是判断真假的,0为真1为假。

在shell脚本中所有的变量如果不声明类型的话默认为字符型。当写完一个shell脚本时我们需要判断一下是否有语法错误则可以使用bash -n 脚本名称例如:bash -n 1.sh,如果需要显示shell脚本的执行过程则可以使用bash -x 1.sh看下我前天写的shell脚本吧(就只看一段)



每一行前面都有一个+号或者++,+号则代表脚本当前执行的命令,++则代表执行trap机制中的命令,其他内容则为输出信息。(这个脚本会在附件里)
接下来说一说for循环吧,其实很简单,它的格式为:
for VAR in LIST;do

循环内容

done

其中var代表一个变量list则为列表这个列表里可以存放一个命令的执行结果也可以存放字符串集合。定义列表的方式有:

1.直接给出

2.数值列表:数值列表可使用{start..end}来定义也可使用seq LAST来定义

接下来就是一些实例了(一定要多动手)

0x01:在/tmp/test目录中创建10个文件(首先要确保目录存在)
#!/bin/bash

dir="/tmp/test"

mkdir $dir

for i in {1..10};do

touch $dir/$i

done




在我们执行完脚本后/tmp/test这个目录下就会有10个文件

0x02:添加10个用户user1-user10

#!/bin/bash

for i in {1..10};do

useradd user${i}

done




非常简单的使用,只要多加练习即可做到不需要什么途径,关于附件里面的脚本我使用了函数、if循环、while循环、case等这些内容都会在后面讲到,看不懂没关系。

本文出自 “Yxn” 博客,请务必保留此出处http://jyxnt.blog.51cto.com/9581167/1587003
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: