输入和输出

输入指的是Shell程序读入数据。有从文件读取、从用户输入读取等方式读入数据。输出指的是Shell程序的运行

结果的处理,可以显示到屏幕或保存到文件。

用ceho命令输出结果

echo $str         #将结果输出到终端。

echo $str >file  #将结果保存到文件file中,如果没有文件会新建一个文件。如果已经有文件则会覆盖以前的文件

echo $str >>file  #将结果追加到文件file中。

echo输出的内容可以有下面的格式控制字符。

\c:末尾加上\c表示这一行输出完毕以后不换行。

\t:输出一个跳格,相当于按下Tab键

\n:输出一个换行。

需要注意的是,如果要输出特殊字符,必须加-e选项,否则会直接输出字节。加-n选项可以禁止echo输出后的换

行。

用read命令读取信息

read命令可以从键盘或文件中读入信息,并赋给一个变量。read命令读取信息的各种方法如下所示:

1.如果只读入一个变量,会把键盘上输入的所有信息赋值给这个变量。按Enter键结束输入。

2.如果输入多个变量,则用空格键将输入的变量隔开。如果输入变量的个数多于需要读取变量的

个数,将会把剩余的变量赋值给最后一个变量。

3.在读取语句后面添加<filename(文件名),表示从文件中读取数据,并且赋值给变量。

测试语句

这里所说的测试是对变量的大小、字符串、文件属性等内容进行判断。test命令可以用于字符串、数

字、文件状态等内容的测试。

文件状态测试

文件状态测试指的是对文件的权限、有无、属性、类型等内容进行判断。与其他语言不同的是,test命令的

测试结果,返回0时表示测试成功。返回1时表示测试失败。

-d  测试文件是否是目录文件       -s  测试文件是否非空

-f  测试文件是否是正规文件        -w 测试是否可写

-L 测试文件是否是符号连接        -u  测试文件是否是suid位设置

-x 测试文件是否可执行              -r 测试文件是否可读

数值测试

数值测试指的是比较两个数值的大小或相等关系,相当于c语言中的比较运算符。Shell程序中的数值测试有

下面两种形式。

1.用test命令。用test命令和相应的参数可以对两个数值得关系进行测试,使用方法如下所示:

test 第一个操作数   数值比较符  第二个操作数

2.用中括号代替test命令。这种方法和test命令的原理相同,使用方法如下所示。需要注意的

是【后面一定要有一个空格】:

第一个操作数   数值比较符   第二个操作数

-eq:  两个数是否相等                         -ne:  两个是否不相等

-le:   第一个数是否不大于第二个数        -ge:   第一个数是否不小于第二数

-gt:    第一个数是否大于第二个数           -lt:   第一个数是否小于第二个数

上图所示,终端中显示的结果为1,表示测试结果是3和5不相等。

终端中显示的结果为0,表示10小于12为真。

字符串测试

字符串测试,指的是比较来那个字符串是否相等,或者判断一个字符是否为空。这种判断常用来测试用户

输入是否符合程序的要求。

test 字符串比较符 字符串

test 字符串 1 字符串比较符 字符串 2

[ 字符串比较符 字符串 ]

[ 字符串1  字符串比较符 字符串 2 ]

=:测试两个字符串是否相等。

!=:测试两个字符串是否不相等

-Z:测试字符串是否是空字符串

-n:测试字符串是否是非空字符串

逻辑测试

逻辑测试指的是将多个条件进行逻辑运算,它们常用作循环语句或判断语句的条件。Shell程

序下有下面三种逻辑测试。

-a:逻辑与,操作符两边均为真时结果为真,否则结果为假。

-o:逻辑或,操作符两边至少一个为真时,结果为真,否则为假。

-!:逻辑否,只有条件为假时,返回结果为真。

终端中显示为0 表明了测试结果为真,因为文件a.txt是可写的。

流程控制结构

流程控制结构指的是使用逻辑判断,针对判断的结果执行不同语句或不同的程序部分。这种结构

是所有编程语言的重要组成部分

if语句

if语句是最常用的条件判断语句,它通过一个条件的真假来决定后面的语句是不是执行。最简单的if条件语句如下所示:

if 条件

then 命令1

fi

在这种结构中,先执行条件判断,如果条件结果为真,则执行then后面的语句,一直到fi。如果条件为假,则跳过

后面的语句,执行fi后面的语句。

如果条件判断的结果,只可能是真或假两种值,则可以使用下面的结构。

if 条件

then 命令1

else 命令2

f I

在这种结构中,先对条件进行判断,如果判断结果为真,则执行then后面的语句。如果判断结果为假,则执行

else后面的语句

如果判断的结果有多种可能,则使用下面的if语句嵌套结构。需要注意的是,if结构必须要有fi进行结束。

if 条件 1

then 命令1

elif 条件 2

then 命令2

else 命令3

f  I

if语句也可以将then写在if条件之后,中间用分号隔开。  这种语句如下所示:

if 条件 1:;then 命令1

elif 条件 2;then 命令2

else 命令3

fi

linux 下shell程序(二)的更多相关文章

  1. linux下shell程序(一)

    shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件. 第二步:修改这个文件的权限使它可以执行.使用c ...

  2. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  3. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  4. Linux 反弹shell(二)反弹shell的本质

    Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向 ...

  5. Linux下C程序的编辑,编译和运行以及调试

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  6. 位图文件(BMP)格式以及Linux下C程序实现(转)

    源:位图文件(BMP)格式以及Linux下C程序实现 说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 ...

  7. Linux 下Shell变量,环境变量的联系与区别

    Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1.  简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...

  8. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  9. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

随机推荐

  1. Java8 更快的原子类:LongAdder(笔记)

    更快的原子类:LongAdder      大家对AtomicInteger的基本实现机制应该比较了解,它们是在一个死循环内,不断尝试修改目标值,知道修改成功,如果竞争不激烈,那么修改成功的概率就很高 ...

  2. Git——使用gitignore建立项目过滤规则

    在进行协作开发代码管理的过程中,常常会遇到某些临时文件.配置文件.或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push ...

  3. hdu1010 dfs+路径剪枝

    题意:用一个案例来解释 4 4 5 S.X. ..X. ..XD .... 在这个案例中,是一个4*4的地图. . 表示可走的地方, X 表示不可走的地方,S表示起始点,D表示目标点.没走到一个点之后 ...

  4. Hybird App(一)----第一次接触

    App你知道多少 一 什么是Native App 长处 缺点 二 什么是Web App 长处 缺点 三 什么是Hybrid App 长处 缺点 四 Web AppHybrid AppNative Ap ...

  5. linux文本命令

    1.find和grep find命令的作用是在目录中根据文件名搜索文件,grep命令的作用是在目录中根据文件内容搜索文件,find和grep的使用权限是所有用户. (1)find命令: find 列出 ...

  6. 在WebService中使用Microsoft.Practices.EnterpriseLibrary.Data配置数据库

    1. 新建WebApplication1项目 1.1 新建—Web—ASP.NET Empty Web Application--WebApplication1 1.2 添加一个WebForm1 2. ...

  7. JavaScript的特殊函数

    1.匿名函数 onclick=function(){}就是匿名函数. 2.匿名函数的回调函数 <script> <span style="white-space:pre&q ...

  8. 开放平台(接口)开发-1-天气API接口大全

     前几天有个公司让准备一下第二次面试.应聘的是IOS开发实习生,可是之前一直做android,IOS刚接触了一个月,会的不是非常多,所以决定做一个实际的项目展现给面试官,余同学给了个建议:能够做一 ...

  9. SpringCloud系列六:Eureka的自我保护模式、IP选择、健康检查

    1. 回顾 前面讲了很多Eureka的用法,比如Eureka Server.Eureka Server的高可用.Eureka Server的用户认证(虽然未完全实现).元数据等, 这章将讲解剩下的自我 ...

  10. JSON串常用函数

    1.JSON.parse() parse 用于从一个字符串中解析出json 对象. 例如 var str='{"name":"cpf","age&qu ...