文档介绍:第2章 Shell程序设计
1
主要内容
Shell简介
管道和重定向
变量、条件判断和程序控制
函数
命令和命令的执行
grep命令和正则表达式
find命令
2
shell简介
为什么使用shell编程
可以快速、简单地完成编程
适于编写一些执行简单任务的小工具
Shell是作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令。
几种shell: bash, sh, csh, tcsh, zsh, ksh, pdksh
可以在Linux中安装多种shell。
3
shell简介
可以使用以下命令来查看shell的版本号:$ /bin/bash --version
如果要切换到另一个shell,只需直接执行需要的shell程序就可以运行新的shell、并且改变命令提示符。例:$ /bin/csh
4
可以在创建用户时,设置用户要使用的shell。
也可以在创建用户后,通过修改用户信息来完成。
5
管道和重定向
重定向输出
例:ls –l > 通过>操作符将标准输出重定向到一个文件。默认情况下,如果该文件已存在,那么它的内容将被覆盖。
可以用>>操作符将输出内容附加到一个文件中。如:ls –l >>
6
重定向输出
文件描述符0:程序的标准输入
文件描述符1:程序的标准输出
文件描述符2:标准错误输出
对标准错误输出进行重定向,使用 2> 操作符。例:$ kill –HUP 1234 > 2>
将两组输出重定向到一个文件中,例: $ kill –1 1234 > 2>&1
$ kill –1 1234 > /dev/null 2>&1
7
重定向输入
例: $ more < $ cat <
思考:
“more ”命令能否成功执行?
它与“more < ”的区别在哪?
8
管道
可以用管道操作符| 来连接进程。
例:
$ ps | sort >
$ ps | sort | more$ ps –m | sort | uniq | grep –v sh | more
使用管道时应注意:若有一系列的命令需要执行,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,因此,绝不要在命令流中重复使用相同的文件名。
9
shell脚本程序
编写shell脚本程序有两种方式:
输入一系列命令让Shell交互执行
将命令保存到一个文件中,将该文件作为一个程序来执行
10