《Unix-Linux编程实践教程》读书笔记(九)

第九章 可编程的shell、shell变量和环境:编写自己的shell

shell本身就是一种编程语言,shell程序通常被称之为shell脚背。本章先学习shell的编程特征,然后再在第八章中编写的shell程序中加入一些特征,将if..then控制语句、局部变量和全局变量添加到要实现的shell程序中。

1.      什么是以及为什么要使用shell脚本语言

         shell是一个编程语言解释器,既可以 解释从键盘读入的命令,也可以解释存储在脚本中的命令

1)  shell脚本包含一系列命令

shell脚本实例;shell脚本的执行(作为sh的参数、chmod后像程序一样执行);

2)  shell语法:script2中的语法(变量、I/O、if..then、环境变量的引用)

3)  自编shell的改进:加入命令解析(在一行中输入命令和参数)加入if..then加入局部变量和全局变量

2.      smsh1---命令解析

         命令解析的过程可以复用。

3.      shell中的流程控制

         1)  if语句做些什么:脚本中的if基于以0退出表示成功这个假设。Unix中exit(0)表示成功。

         2)  if如何工作:与C语言中的if相似

         3)  在smsh中添加if(*):关键字的区分可以复用

4.      shell变量:局部和全局

         1)  shell中有两类变量:局部变量和环境变量。

         2)  使用shell变量:

                   a)      变量名

                   b)      变量的值是字符串。没有数值类型的变量,所有操作都是字符串操作

                   c)      列出所有的变量使用set命令(列出包括在登陆的时候设置的变量)

         3)  变量的存储

                   模型;接口;实现;程序实现的问题(*)

5.      环境:个性化设置

         环境不是shell的一部分,但是shell提供了一些读取和修改环境的命令。

1)  使用环境:

列出环境#env

2)  更新环境

a)        var = value

b)        export var

3)  在C程序中读入环境

char *cp = getenv(“LANG”);//换取环境变量LANG字符串

4)  什么是环境,以及它是如何工作的

环境是每个程序都可以读取的一个字符串数组。

a)        showenv.c的功能就像#env,读取环境

b)        changeenv.c说明了environ全局变量在不同程序间的传递

c)        exec家族会复制父进程的environ给子进程,但是子进程对env的修改不会影响父进程。

6.      在smsh中添加环境处理(*)

7.      已实现的shell功能:未实现的shell功能(read变量、输入/输出重定向)

8.      小结

         1)  shell脚本可以运行程序、接受用户输入、使用变量和使用复杂的逻辑控制

         2)  if..then依赖于Unix程序返回0表示成功

3)  每个程序都会从调用它的进程中继承一个字符串列表,这个列表称为环境。

----------------------------------------------------------------------------------------

本文链接http://blog.csdn.net/yongchurui/article/details/27588873

2014.05.21


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值