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

Linux程序设计读书笔记:第二章 shell程序设计

2012-03-03 12:17 267 查看
2.1 什么是shell



解释型语言,不适合用来完成对执行时间比较挑剔或者处理器符合比较大的工作




shell是一个做为用户与UNIX系统之间的操作接口的程序,文件的重定向只要使用"<"和"》"就行,管道用一个"|"就能代表,子进程的输出是"$(...)",所有这些的具体细节都早已为用户准备好了。


2.2 管道和重定向

2.2.1 对输出数据进行重定向



$ls -l > lsoutput.txt,这条命令将ls命令的输出保存到一个名为lsoutput.txt的文件里去




$ps >> lsoutput.txt,这条命令将把ps命令的输出追加到文件尾部




文件描述符0代表一个程序标准输入,文件描述符1代表一个程序标准输出,而文件描述符2代表一个程序标准错误输出


2.2.2 对输入数据进行重定向



不仅能重定向输出信息,还可以重定向输入数据,如$ more < killout.txt


2.2.3 管道



可以用管道操作符"|"把进程连接在一起,UNIX不同于DOS,用管道连接在一起的进程可以同时运行,并会随着数据流在它们之间的流动而自动协调


2.3 可以被视为程序设计语言的shell

2.3.1 交互式程序

2.3.2 编写脚本程序



程序中的注释以一个"#"符号开始,一直持续到该行的结束




在shell程序设计里,exit命令返回"0"表示成功




UNIX一般很少通过文件的扩展名来确定文件的类型,可以完全省略".sh",或者给它加上一个不同的扩展名,shell是不关心的,要想知道它们是否是脚本程序,最好的方法就是使用file命令,比如 "file first.sh"


2.3.3 把脚本设置为可执行程序



用chmod命令对已写好的脚本文件的状态(mode)进行修改,是这个文件能够被全体用户执行,$ chomd +x first.sh


2.4 shell程序设计的语法

2.4.1 变量



在shell里,使用变量之前并不需要事先对它们做出声明。在默认情况下,所有变量都被认为是并保存为字符串,即使它们被赋值为数值时也是如此。shell和其它一些工作程序会把"数值"型字符串依次转换为正确的数值,并且按照正确的方式对它们进行操作。





因为UNIX是一个区分字母大小写的系统,shell中依旧如此






shell里,在变量名前面加上一个"$"字符就可以获得它的内容,echo命令就可以输出它的内容。只要用到变量,我们就可以在它前面加上一个"$"字
符,除非我们是在对该变量进行赋值操作。注意,如果字符串里包含着空格,就必须用引号把它们括起来,还要注意等号两边不能有空格。



$salutation=Hello

$echo $salutation

Hello

$salutation="Year Dear"

$echo $salutation

Year Dear

$salutation=7+5

$echo $salutation

7+5



2.4.2 条件测试

2.4.3 控制结构

2.4.4 函数

2.4.5 命令

2.4.6 命令的执行

2.4.7 即时文档

2.4.8 调试脚本程序

2.5 shell程序设计示例

2.5.1 工作需求

2.5.2 设计

2.6 本章总结
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: