快速入门shell脚本编写(三)

从这一节主要学习 控制语句、循环语句

注释、shell多行注释

shell单行注释很简单,只需在每行行首增加#,但是他其实是没有提供专门的多行注释的方法的,所以我们采用投巧的方式来多行注释,用EOF分界符来多行注释,如下:

  1 #! /bin/sh
  2
  3 file="/Desktop/file.test"
  4
  5 <<EOF
  6 if [ -r $file ]
  7 then
  8         echo "1"
  9 fi
 10
 11 if [ -w $file ]
 12 then
 13         echo "3"
 14 else
 15         echo "4"
 16 fi
 17 EOF
 18
 19 if [ -f $file ]
 20 then
 21         echo "file is an ordinary file"
 22 fi

上面代码中5 - 17行就被注释掉了。

if判断语句

if判断语句应该已经很熟悉了,前面很多例子都使用了if判断语句,这里直接上俩个程序,并提供运行结果。

  1 #! /bin/sh
  2
  3 var="test"
  4
  5 if [ $var == test1 ]
  6 then
  7         echo "1"
  8 else if [ $var == test ]
  9 then
 10         echo "2"
 11 fi
 12 fi

运行结果:2

上面使用的结构是

if ...

then ...

else if ...

then ...

fi

fi

另外一种结构是:

  1 #! /bin/sh
  2
  3 var="test"
  4
  5 if [ $var == test1 ]
  6 then
  7         echo "1"
  8 elif [ $var == test ]
  9 then
 10         echo "2"
 11 fi

运行结果也是2,这个结构和上面的类似,只是中间的else if ... fi 被换为elif了。

循环语句

for循环

先看一个例子:

  1 #! /bin/sh
  2
  3 for (( i=0; i<10; i++))
  4 do echo $i
  5 done

乍看起来还是很熟悉的,但是实际上需要注意如下几点:

1,for循环要用双括号 括起来,即: ((...;...;...;))

2,do 和 done是必不可少的

输出结果就是从0到9所有数字

while循环

  1 #! /bin/sh
  2
  3 i=0
  4 while((i<10))
  5 do
  6         echo $i
  7         let i++
  8 done

该循环的作用与上面的for循环结果输出一样。

while循环的结构是:

while ...

do ...

done

until循环

until循环使用很少,结构类似c/c++ java的do while循环,但实际条件是终止条件 而非c/c++里面的执行条件。这里略做介绍,个人建议浏览即可,也可跳过。

结构:

until ...

do ...

done

  1 #! /bin/sh
  2
  3 i=0
  4 until((i>=10))
  5 do
  6         echo $i
  7         let i++
  8 done

上面循环执行结果与之前的相同,请注意这里until里面的条件是退出条件。

数组

看for in 和 case 语句前,先了解一下shell数组

表示方式:

方式一:arraynum=(1 2 3 4 5)

方式二:

arraynum[0]=0

arraynum[1]=1

arraynum[2]=2

获取数组的长度的方式:${#arraynum[@]} (arraynum[@]实际上arraynum的列表,计数符号我们在前面讲过,所以这个表达式不难理解)

for in 语句

接着我们来看如何遍历输出数组

  1 #! /bin/sh
  2
  3 arraynum[0]=a
  4 arraynum[1]=b
  5 arraynum[2]=c
  6
  7 for var in ${arraynum[@]}
  8 do
  9         echo ${var}
 10 done
 11
 12 echo ${#arraynum[@]}
 13 echo ${arraynum[@]}

上面就使用了for in语句遍历输出数组内容,最后俩句是为了验证上面我所说的,${#arraynum[@]}是计算数组的长度,${arraynum[@]}是数组列表。

我们来看看输出结果:

for in语句的结构如下:

for 变量名 in 列表

do ...

done

该表达式语句比较常用,我们需要熟记他的形式和用法。

时间: 2024-12-23 00:46:33

快速入门shell脚本编写(三)的相关文章

快速入门shell脚本编写(四)

Lee出品,转载请注明出处 http://blog.csdn.net/hnulwt/article/details/43234977 继续上次学的内容,这次学习 case 语句和 shell的函数概念. case 语句 首先先看看测试程序: 1 #! /bin/sh 2 3 animal=dog 4 5 case "$animal" in 6 cat) 7 echo "cat";; 8 dog) 9 echo "dog";; 10 lion) 1

Follow me---快速入门shell脚本编写(二)

上次在写shell的时候发现vi和vim不一样:vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim要比vi好用许多. 这次接着上次的内容,基础知识,继续学习,本文作者也在自学中,纰漏错误在所难免,若有人发现问题请指出谢谢! Lee出品,转载请注明出处http://blog.csdn.net/hnulwt/article/details/43155797 布尔运算符 先大致熟悉一下布尔相关的三个运算符 ! 非运算 -o 或运算(or) -a 与运算(and) 接着

Follow me---快速入门shell脚本编写

努力让自己工作变得高效,会写脚本,会用脚本,往往事半功倍.所以,今天就抽出一些时间学习学习Shell脚本. --------------前方高能预警,本文写的略自娱自乐,如有看着不适,请狂戳右上角---------------------- shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不

shell脚本编写nginx部署脚本

下面为shell脚本编写的nginx的安装及修改nginx.conf的脚本,脚本比较简单: #!/bin/bash function yum_install(){ yum install epel-release -y yum install nginx -y} yum_install pw=/etc/nginx/nginx.confread -p "请输入组名:" zuread -p "请输入第一个ip地址:" ip1read -p "请输入第二个ip地

shell脚本(三)

shell脚本(三) 2.文件排序.合并和分割 (1)sort命令 #-c:测试文件是否已经排序:-k:指定排序域:-m:合并两个已经排序的文件: #-n:根据数字大小进行排序:-o:将输出写到文件:-r:将排序结果逆向显示 #-t:改变域分隔符:-u:去除结果中的重复行 #将a.txt逆向排序,并去除重复的行 sort -u -r a.txt #以":"为分隔符,根据第3域数字大小来对/etc/passwd排序 sort -t: -k3n /etc/passwd #合并已经排序的两个

shell脚本编写方法

shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell  shebang  Path 基本语法: 命令.变量.函数.参数.条件.流程控制. 变量相关:定义.命令参数变量和系统参数 与 配置文件读取(-r cron.daily/sysstat脚本中). 函数:定义方法 条件判定与环境测试:-x -d -f 等 执行流程控制:case 等 字符串处理与高级指令: (sed

shell脚本第三篇——监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告

shell脚本第三篇--监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告 #!/bin/bash#monitor available disk space#提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` SPACE=` df -hP | awk '{print int($5)}'`if [ $SPACE

第三部分shell编程3(shell脚本编写1)

做监控和备份最多 1. shell脚本是什么它是一种脚本语言,并非编程语言可以使用一些逻辑判断.循环等语法可以自定义子函数是系统命令的集合shell脚本可以实现自动化运维,大大增加我们的工作效率 第一个shell脚本:mkdir shellcd shell/vim 1.sh``#! /bin/bash`#This is a test shell script``echo "123456."`touch aming.111`date 2. shell脚本结构以及执行方法开头行指定bash

第十二章 Shell脚本编写及常见面试题(三)

本章目录: 12.21 FTP下载文件 #!/bin/bash if [ $# -ne 1 ]; then     echo "Usage: $0 filename" fi dir=$(dirname $1) file=$(basename $1) ftp -n -v << EOF   # -n 自动登录 open 192.168.1.10 user admin adminpass binary   # 设置ftp传输模式为二进制,避免MD5值不同或.tar.gz压缩包格式