如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第2章Shell编程2.1、Shell概述1、什么是ShellShell:作为核外程序而存在Shell的双重角色举例Shell作为程序设计语言有如下特点shell是解释性的,多数高级语言是编译性的shell语言与高级语言处理的对象不同shell与系统有密切的关系shell易编写、调试、灵活性较强,但速度低shell作为命令级语言,命令组合功能很强2、各种不同的Shellbash特点3、Shell的启动4、为什么要使用Shell2.2创建和执行Shell程序1、编写脚本文件2、执行脚本文件方法3:$chmod+xscript_file之后,执行下面命令执行shell脚本$./script_file或者执行下面命令执行shell脚本$PATH=$PATH:.$script_file例如:$chmod+xex1$./ex1或者:$chmod+xex1$PATH=$PATH:.$ex13、调试脚本4、运行环境环境文件/etc/profile,bash.bashrc,environment—系统环境~/.bash_profile,.bashrc,.bash_logout—用户环境,用户建立后便自动生成/etc/profile为系统的每个用户设置环境信息:PATH、USER、LOGNAME、LANGUAGE、PS1……/etc/bashrc或environment当用户第一次登陆时被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置为每一个运行bashshell的用户执行此文件~/.bash_profile:用户登录时被读取,其中包含的命令被bash执行或往PATH添加用户相关路径:PATH=$PATH:$HOME/bin~/.bashrcbashshell中启动一个新的bashshell时读取并执行—即执行Shell命令时执行~/.bash_logout:清屏退出时读取执行使用环境变量显示环境变量echo—可以查看任何一个环境变量的值env—命令显示所有的环境变量取消环境变量—unset3.Shell程序设计的语法3.1特殊字符特殊字符举例:[a-d,x,y][oO]z*x?yrc?.d[!Z][a-f]**[!o]模式表达式举例:file*(.c|.o)file+(.c|.o)file?(.c|.o)file@(.c|.o)file!(.c|.o)引号举例echocurrentdirectoryis`pwd`echocurrentdirectoryis$pwdtoday=`date`echoTodayis$todayusers=`who|wc-l`echo“FilenameisNo\$1”echo“\“hello\””重定向符举例bash<cmdsmore<fork.cwho>file1ps–l>>file1find./-nametest2>file2find./-nametest12>>file2wc–l<test>outfilefind/-nametest>1.txt2>&1cat<<HELPThisscriptisusedto…HELP特殊字符#注释符|管道操作符—顺序的执行若干个命令&后台命令符—将程序放在后台执行举例ls–l$HOME|wc–lls|grepfor?.c|wc–lfind/-nametest>1.txt2>&1&3.2变量用户变量变量的引用——变量名前加$$dir=~/home/zsx/tmp$echo$dir$cat$dir/test1/m1.c实例参数变量(也称位置参数)实例用set命令为参数变量赋值($0除外)$setm1.cm2.c$cat$1$2$set$(wc–ltest_file)$echo$1unset:删除参数变量移动参数变量$shiftn3.3命令表和语句块命令表例语句块3.4条件测试字符串比较算术比较与文件有关的条件测试逻辑操作实例1实例2实例33.5条件语句if语句例1#!/bin/bashecho“Isthismorning?Pleaseansweryesorno.”readanswerif[“$answer”=“yes”];thenecho“Goodmorning”elif[“$answer”=“no”];thenecho“Goodafternoon”elseecho“Sorry,$answernotrecognized.Enteryesorno”exit1fiexit0例3if[-fthis_file]&&[-fthat_file]&&[-f