`
su1216
  • 浏览: 670398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71871
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128680
社区版块
存档分类
最新评论

《Linux命令行与shell脚本编程大全》 第十二章

阅读更多

 

第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器

第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本

第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell

第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶

 

第十二章:更多的结构化命令

for
基本格式

for var in list
do
    commands
done

可以通过下面几种方式指定list列表
1.罗列

for var in A B C D

如果罗列中的字符串中有特殊字符,比如单引号,可以
1)使用转义字符
2)使用双引号

2.从变量读取列表

list="A B C D"
list=$list" E"
for var in $list


3.从命令中读取值

for var in `cat $file`

注意:这种情况换行也是字段分隔符
for循环结束之后,$var保存着列表中的最后一个值

更改字段分隔符
环境变量IFS:internal field separator,内部字段分隔符
默认情况下,空格、制表符和换行符为字段分隔符
修改:

IFS=$'\n'
IFS=:
IFS=$'\n:;"'

(上面的$是做什么的)
如果只是想临时修改

IFS.OLD=$IFS
IFS=$'\n'
#还原之前设置
IFS=$IFS.OLD

用通配符读取目录
可以用for命令遍历目录,但是必须在文件名或者路径名中使用通配符,它会强制shell使用文件扩展匹配(file globbing)
文件扩展匹配是生成匹配指定的通配符的文件名或路径的过程

for file in /home/su1216/test/* /home/su1216/abc
do
    if [-d "$file"]
    #文件名如果有空格,那么需要将其用引号包起来
    then
        echo "$file is a directory"
    elif [-f "$file"]
        echo "$file is a file"
    else
        echo "$file is not exist"
    fi
done


C语言风格的for命令
for ((a = 1; a < 10; a++))
注意:
1)给变量赋值可以有空格
2)条件中的变量不以美元符号开头
3)迭代过程中的算式未用expr命令格式
使用多个变量

for (( a = 1, b = 10; a <= 10; a++ ,b-- ))
do
    echo "$a - $b"
done


while命令

while test command
do
    other commands
done

根据test命令的退出状态码决定是否继续循环

使用多个测试命令
每个测试条件都在单独的行上,只有最后一个测试命令的退出状态码会被用来决定什么时候退出循环

var1=10
while echo $var1
      [ $var1 -ge 0 ]
do
    echo "This is inside the loop"
    var1=$[ $var1 - 1 ]
done

注意:每次迭代,所有测试条件都会被执行!


until命令
与while工作方式相反
基本格式

until test commands
do
    other commands
done

也可以有多条测试命令,同while

嵌套循环

var1=3
until [ $var1 -eq 0 ]
do
    echo "Outer loop: $var1"
    var2=1
    while [ $var2 -lt 5 ]
    do
        var3=`echo "scale=4; $var1 / $var2" | bc`
    echo "    Inner loop:$var1 / $var2 = $var3"
    var2=$[ $var2 + 1 ]
    done
    var1=$[ $var1 - 1 ]
done


控制循环
break
continue
他们都可以指定跳出/继续的循环层数
break n
continue n
n默认都为1

处理循环的输出
可以在循环的done之后接管输出,比如

for var in A B C
do
    echo "$var"
done > out.txt

当然也可以使用管道

for var in A B C
do
    echo "$var"
done | sort

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

分享到:
评论

相关推荐

    Linux Shell命令行及脚本编程实例详解PPT

    刘艳涛的《Linux Shell命令行及脚本编程实例详解》是清华大学出版社出版的一本教程,深入浅出地介绍了Shell的使用和脚本编程技巧。 **第2章 初识Linux Shell.pptx** 这一章节可能涵盖了Shell的基础概念,包括什么是...

    Linux Shell命令行及脚本编程实例详解

    第十二章“管道和过滤器”则涉及如何利用管道(|)连接多个命令,将一个命令的输出作为另一个命令的输入,形成数据处理链。同时,过滤器(如grep、sort、uniq等)在管道中起到筛选和处理信息的作用,让数据处理更加...

    linux_Shell(脚本)编程入门_实例讲解详解.pdf

    Linux Shell脚本编程是Linux系统管理中不可或缺的一部分,它允许用户通过编写命令脚本来自动化重复性的任务,提高工作效率。在Linux环境中,虽然图形界面工具众多,但Shell由于其灵活性和强大的功能,始终扮演着核心...

    Shell脚本编程详解

    ### Shell脚本编程详解 #### 一、Shell脚本编程基础 **1.1 Shell命令行的运行** Shell脚本的基础在于理解如何在命令行环境中运行Shell命令。Shell是一种用于与操作系统交互的语言,它允许用户通过命令行界面执行...

    LINUX与UNIX SHELL编程指南(很全)

    第12章 tr用法 119 12.1 关于tr 119 12.1.1 字符范围 119 12.1.2 保存输出 120 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 ...

    根据《Shell脚本编程详解》第12章节-Shell脚本编程,自己写的shell脚本。

    在《Shell脚本编程详解》第12章节中,我们深入探讨了Shell脚本编程的基础和实践,这里将根据这个主题和提供的描述,详细阐述相关知识点。 1. **Shell脚本基础**: - **Shebang(#!/bin/bash)**:脚本开头的这一行...

    linux shell 命令, 脚本编程

    ### Linux Shell 命令与脚本编程知识点详解 #### 第一部分:Shell ##### 第1章:文件安全与权限 **1.1 文件** - **定义**:在Linux系统中,几乎所有东西都被视为文件,包括目录、设备等。 - **用途**:用于存储...

    快乐的Linux命令行.docx

    同时,本书还会介绍一些高级主题,如shell脚本编程、正则表达式、网络编程等。 4. 谁应该读这本书 本书适合所有想学习 Linux 命令行的读者,无论是初学者还是经验丰富的开发者。本书将提供详细的解释和示例代码,...

    Linux shell 脚本攻略

    本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍了Shell脚本的编写技巧和实战应用,非常适合对Linux感兴趣的初学者学习。 **Shell脚本基础** 1. **Shell介绍**:Shell是Linux的命令解释器,它提供了一个与...

    Linux命令行大全中文版(CHM格式)

    除了基础命令,这份大全可能还涵盖了高级命令和脚本编程,如管道(|)、重定向(&gt;、&lt;、&gt;&gt;)、进程控制(&、bg、fg、jobs)、环境变量设置、以及shell编程语法等。 了解并熟练掌握这些命令对于Linux用户来说至关重要...

    Linux基础课件第四章Shell脚本编程.ppt

    Linux基础课件第四章Shell脚本编程 Shell脚本编程是 Linux 中非常重要的一部分,本章节将介绍 Shell 的发展过程、用途、变量设置和使用、基本操作方式、简单的 Shell 脚本编辑方法等内容。 Shell 的发展与分类 ...

    linux与unix shell编程指南

    《Linux与Unix Shell编程指南》是一本深入探讨操作系统命令行界面和脚本编程的书籍,主要针对Linux和Unix系统中的Bash Shell。本书分为29个章节,涵盖了从基础概念到高级技巧的全面内容,旨在帮助读者掌握Shell编程...

    Linux命令行大全中文版(CHM格式).rar

    书中可能还包括对shell脚本编程的介绍,如变量、条件语句、循环结构等。 通过阅读这本书,读者不仅可以了解每个命令的基本用法,还能学习到如何组合使用命令以实现更复杂的任务。掌握这些命令行技巧,无论是日常的...

    Linux与unix shell编程指南

    第12章 tr用法 119 12.1 关于tr 119 12.1.1 字符范围 119 12.1.2 保存输出 120 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 ...

    LINUX与UNIX SHELL编程指南--part1

    接下来的章节可能会逐步深入到Shell脚本编程,第四章可能涵盖变量和参数,第五章可能涉及条件语句(if-then-else)和逻辑运算符,这些是编写复杂脚本的基础。第六章可能是关于循环结构,如for和while循环,它们在...

    Linux命令行中文版

    第十二章:shell 环境 本章节主要介绍了 shell 的环境变量和配置,包括环境变量的设置和使用等。 第十三章:VI 简介 本章节主要讲述了 VI 编辑器的基本使用方法,包括 VI 的启动、编辑和退出过程等。 第十四章:...

    Linux与Unix Shell编程指南

    6. **第十九章:向脚本传递参数** - 介绍了如何在Shell脚本中接收和处理命令行参数,包括位置参数、特殊参数`$#`、`$*`和`$@`,以及`shift`命令的应用。 7. **第二十一章:创建屏幕输出** - 讨论了如何通过Shell...

Global site tag (gtag.js) - Google Analytics