第二章-Shell-足本编程课件

PPT
  • 阅读 86 次
  • 下载 0 次
  • 页数 129 页
  • 大小 204.082 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第二章-Shell-足本编程课件
可在后台配置第一页与第二页中间广告代码
第二章-Shell-足本编程课件
可在后台配置第二页与第三页中间广告代码
第二章-Shell-足本编程课件
可在后台配置第三页与第四页中间广告代码
第二章-Shell-足本编程课件
第二章-Shell-足本编程课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 129
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】第二章-Shell-足本编程课件.ppt,共(129)页,204.082 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45489.html

以下为本文档部分文字说明:

第二章Shell脚本编程本章参考教材《Unix技术大全——系统管理员卷》机械工业出版社《Linux与UnixShell编程指南》机械工业出版社AdvancedBashScriptingGuide,byMendelCooper,电子

书籍其他网上资源基本概念Unix/Linux系统中供用户使用的界面,为用户提供了输入命令和参数并可得到命令执行结果的环境。Unix/Linux中的ShellBourneShell或PosixShellKornShellBourneAgainShellZShell

CShellTCShellWindows中的Shell传统:DOS批处理文件(*.bat)WSH(WindowsScriptHost)VBScript(*.vbs)Jscript(*.js)C:\windows\samples\wshASP(Activ

eServerPages)*.aspVBScript或Jscript脚本语言在浏览器中运行脚本基本概念Shell的特点命令行解释使用保留字使用Shell元字符(通配符)可处理程序命令使用输入输出重定向和管道维护变

量进行Shell环境控制支持Shell编程常见Shell命令文件安全与权限后台执行命令Shell输入与输出文本过滤——grep家族正则表达式登陆环境文件安全与权限-rw-r--r--1wlzhangunknown14Jan162003pg.txt-rw-r--r--1w

lzhangunknown20Jan102002test.txt文件权限位文件硬链接数目文件属主属主所在的默认组文件长度文件更新时间文件名文件安全与权限文件权限位-rw-r--r—文件属主权限同组用户权限其他用户权限文件类型:d,l

,s,b,c,p,-文件安全与权限改变权限位——符号模式chmodu+xfile1u,g,o,a+,-,=x,r,w,s,t,l例子chmodu+xo-wmyfile文件安全与权限改变权限位——绝对模式chmod–R664/usr/lo

cal/home/*文件安全与权限目录的权限r:可以列出该目录中的文件w:可在该目录中创建或删除文件x:可搜索或进入该目录例如:同组用户对某一目录的权限位为--x,可否执行该目录下设置执行位

的脚本?文件安全与权限目录的权限目录的权限覆盖该目录中文件的权限drwxr--r--……dir1该目录下文件f1权限为-rwxrwxrwx……f1则同组用户无法编辑该文件或访问该目录(BourneShell)文件安全与权限suid/guid设置suid/gui

dchmod4755f2第一个为4:设置suid2:设置guid6:同时设置suid和guid文件安全与权限chown和chgrp:改变文件的属主和属组chown一般形式chown[-R][-h]ownerfile例子:chownpaulineprojectchgr

padminproject注:改变文件的所有权时,相应的suid、guid被清除文件安全与权限查看umask值:umask命令umask值目录文件022755644027750640002775664006771660007770660文件安全与权限软链接

和硬链接ln[-s]sourcefiledestfile可以用ln命令为文件建立其他的名字find和xargsfindpathname–options[-print-exec-ok]find.–maxdepth1–nam

e―t*‖–printfind~-name―[A-Z]*‖–print-name-perm-type:b,d,c,p,l,f-user-group-mtime–n+n-follow-newerfile1!

–newerfile2-size+n[c]–n[c]n[c]find和xargsfind.-name"leap"-prune-o-name"t*"–printfind.–name―[a-z][a-z][0-9][0-9].txt‖–printfind.–p

erm755–printfind/etc–useruucp–printfind/-mtime–5–printfind/var/adm–mtime+3–printfind.-newerchp7_10.sh!-newerhello.sh-printtouch

–t09170000idlefind.–neweridle-printfind和xargsfind/etc–typed–printfind.–size+10–printfind/-name―CON.

FILE‖–depth–printfind.–typef–execls–l{}\;find.–typef–name―cw*‖–okls–l{}\;find.–name―*.log‖–mtime+5–okrm{}\;find和xargsfind命令中-exec选项,容易

导致:参数列太长进程过多,性能下降find命令与xargs命令结合分批处理find命令传出的参数xargs命令只有一个进程find和xargsfind/–name―core‖–print|xargs>/tmp/core.logfind/apps/audit–p

erm–0777|xargschmodgo-wfind/-typef–print|xargsgrep―device‖find.–name\*-typef–print|xargsgrep―DBO‖后台执行命令设

置crontab文件,用它来提交作业(cron)用at命令提交作业(at)在后台提交作业(&)用nohup命令提交作业(nohup)后台执行命令——cron和crontabcron:系统调度进程,自动调度用户的作业crontab:允许用户提交、编辑或

删除相应的作业用户能否拥有crontab文件,通过cron.denycron.allow来管理后台执行命令——cron和crontabcrontab文件——六个域分:1-59时:0-23日:1-31月:1-12星期:0-6要运行的

命令域之间用空格分割,每个域可有-、,、*后台执行命令——cron和crontabcrontab文件例子:3021***/apps/bin/cleanup.sh4541,10,22**/apps/bi

n/backup.sh101**6,0/bin/find–name―core‖–execrm{}\;0,3018-23***/aaps/bin/dbcheck.sh注:运行的命令或脚本绝对路径的形式,并在脚本中

设置相应的环境变量crontab命令crontab[-uuser]–e–l–r用编辑器创建文件cwcron,每1小时提醒时间(如何写?)crontabcwcron——将此作业提交给cron进程crontab–l/cr

ontab–e/crontab–r进行备份at命令向cron守护进程提交作业,稍后运行为提交的作业保留当前环境变量,包括路径,作业的输出发送电子邮件(或重定向)at[-fscript][-m–

l–r][time][date]命令行方式或者at命令提示符at命令$at21:30at>find/-name―passwd‖–printat><EOT>系统返回JobID:job1从邮件中获得

结果信息at命令接受的日期/时间格式:H、HH.MM、HH:MM、H:M、am、pmat6.45amMay12at11.10pmatnow+1hourat9amtomorrowat15:00May24a

tnow+10minutesat命令atq命令或at–l命令$at–l22003-09-0223:00a32003-09-2213:20a42003-09-0309:00a12003-09-0312:00aatq–c,atq–nat

命令清除作业先执行at–l命令,获得作业标识再使用at–r清除该作业&命令将费时的作业放至后台运行,系统返回进程号完成时,按任一键出现完成提示将输出重定向查看进程psnohup命令使后台进程在用户退出登录时继续运行作业的输入输出重定向到nohup.out中nohupc

ommand&可通过提交脚本一次提交多个命令Shell输入与输出标准输入标准输出标准错误输出输入输出的重定向Shell输入与输出echo命令显示文本或变量echohelloworldecho―helloworld‖echo‗helloworl

d‘var=―helloworld‖echo$varecho―$var‖echo‗$var‘echo―\007‖echo–e―\007‖echo$‘\007‘转义\n,\r,\t,\v,\b,\a\0xx(八进制)echo5_2.shecho"\$vari

able01"echo"\\"echo"\"Hello\",hesaid."Shell输入与输出转义variable=\echo"$variable"variable=\23skidooecho"$variable"variable=\\echo"

$variable"variable=\\\echo"$variable"\的转义作用\<space>\<newline>Shell输入与输出echo命令echo―something…‖>myf

ileecho―something…‖>>myfileecho―nowis`date`‖Shell输入与输出read命令从键盘或文件的某一行文本中读入,并赋予一个变量readnameHellohowareyoureadnamesurnameJohnDoereadnamesurname

JohnLemonDoe参看例子脚本test.shShell输入与输出cat命令显示文件内容、创建文件、显示控制字符catmyfilecat–vmyfile(-v显示控制字符,^M)用cat命令创建新文件cat>myfileShell输入

与输出管道命令(|):把一个命令的输出传递给另一个命令作为输入ls|grepmyfilewho|awk‗{print$1―\t‖$2}‘df–k|awk‗{print$1}‘|grep–v―Filesystem‖df–k|awk‗{print$1}‘|grep–v―Filesy

stem‖|seds‘/C:\\cygwin//g‘Shell输入与输出tee命令将输出的副本送到标准输出,另一个副本拷贝到相应文件中tee–afiles(-a:追加到文件中)ls–l|teels.outecho―something…‖|tee/dev/consoleShell输

入与输出标准输入、输出和错误标准输入:文件描述符0,默认键盘标准输出:文件描述符1,默认屏幕标准错误:文件描述符2,默认屏幕输入输出的重定向Shell输入与输出command>filenamecommand>>filenamecommand1>filenamecommand1>>

filenamecommand2>filenamecommand2>>filenamecommand&>filename==command>filename2>&1(!=2>&1>filename)2>&1i>&j>&j0<filename<filename[j]<>filen

ame(见file1.sh)&:文件描述符的复制,j复制到iShell输入与输出cat>>myfile<<GOODgrep―sky‖absentfile2>/dev/nullgrep―sky‖absentfile2>grep.errcatexistfileabsen

tfile1>rec.out2>rec.errcleanup>cleanup.out2>&1(将标准输出和标准错误重定向到文件中)文本过滤——正则表达式元字符:正则表达式中描述模式匹配操作的特殊字符^只匹配行首字符$只匹配行尾字符*任意多个字符[]匹配其中单个或字符的范围

\对特殊元字符进行转义.单个字符文本过滤——正则表达式pattern\{n\}匹配模式出现n次pattern\{n,\}含义同上,但次数最少为npattern\{n,m\}含义同上,但出现次数在n与m之间?模式出现0次或1

次*模式出现任意多次+模式出现1次或更多次文本过滤——正则表达式...x..x..x^dsh$^....$^$\.^.2\*\.past.*\.sh$t*\.sh$[0123456789]

[0-9][a-zA-Z0-9\-][^0-9][^abc]^[^1][]中都是单个字符匹配文本过滤——正则表达式重复——表示符号前面的模式重复出现的次数*、+、?23*4对于1548Kerry534正则表达式^1.*4匹配整行,而不是154文本过滤——正则

表达式‗([a-z])([a-z])\2\1‘:匹配anna,qwwq等A\{2\}B:匹配AABA\{4,\}B:A\{2,4\}B:\<:匹配单词开始\b:匹配单词开始或结束\>:匹配单词结束\B:不在单词开始或结束文本过滤——正则表达式正则表达式的连接正则表达式

的“或”操作(|)执行优先次序重复*,+,?连接或:|可用括号改变顺序文本过滤——常用正则表达式^[^l]^thegr(a|e)y(^To:|^From:)(Seaman|Ramsay)[0-9]\{2\}-[0

-9]\{2\}-[0-9]\{4\}[a-z][a-z]*^\.[0-9][0-9]文本过滤——grep命令grep[option]regexp[files]grep―hello‖*grep–c―hello‖hello.

sh(显示出现次数)grep–l―hello‖*(显示匹配文件名)grep–n―hello‖hello.sh(显示匹配的行及行号)grep–v―hello‖hello.sh(显示不匹配的行)grep–i―hello

‖hello.sh(大小写不敏感)grep–s―hello‖hello.sh(屏蔽出错信息)文本过滤——grep命令grep、正则表达式,与系统命令grep‗\<hell\>‘testgrep‗l\{2,\}‘testls–l|grep‗^d‘ls–l|

grep‗^[^d]..x..x..xpsax|grep―named‖psax|grep―named‖|grep–v―grep‖文本过滤——egrep命令egrep:expressionorextendedgrep-f选项使用文

件作为匹配参数cathello.parahelloworldegrep–fhello.parahello.sh文本过滤——egrep命令who|egrep(user1|user2|user3)who|egrep–v‗^(user1|user2)‘egrep‗(yello

w|red)flower(s)?‘*文本过滤——awk命令awk[-Ffield-separator]‗commands‘input-file(s)在文本文件或字符串中按一定规则浏览和抽取信息命令、程序、语

言用awk语言编写脚本awk–fawk-script-fileinput-file(s)文本过滤——awk命令awk‗BEGIN{…}BEGIN语句{…}处理数据END{…}‘完成处理filename文本过滤—

—awk命令例子:grade.txtM.Tansley05/9948311Green84044J.Lulu06/9948317green92426P.Bunny02/9948Yellow123528J.Troll07/994842Brown-3122626L.Tansley05

/994712Brown-2123028文本过滤——awk命令awk‗{print$0}‘grade.txtawk‗{print$1,$4}‘grade.txtawk‗BEGIN{print―Name\n----

-----‖}{print$1}END{print―end-of-report‖}‘grade.txt文本过滤——awk命令awk‗{if($4~/Brown/)print$0}‘grade.txtawk‗$0~/Brown/‘grade.txtawk‗{if($3~/48/)

print$0}‘grade.txtawk‗$3==―48‖{print$0}‘grade.txtawk‗$0!~/Brown/‘grade.txtawk‗{if($6<$7}print$1―Trybetteratthenextcomp‖}‘grade.txt文本过滤——aw

k命令awk‗/[Gg]reen/‘grade.txtawk‗/^...a/‘grade.txtawk‗$1~/^...a/‘grade.txtawk‗/(Yellow|Brown)/‘grade.txt文本过滤——awk命令aw

k内置变量ARGC命令行参数个数ARGV命令行参数ENVIRON系统环境变量FILENAME浏览的文件名FNR浏览文件的记录数FS域分隔符NF浏览记录的域个数NR已读的记录数OFS输出域分隔符ORS输出记录分隔符RS记录分隔符文本过滤——awk命令awk‗{pri

ntNF,NR,$0}END{printFILENAME}‘grade.txtawk‗END{printNR}‘grade.txtawk‗{if(NR>0&&$4~/Brown/)print$0}‘grade.txtecho`pwd`|a

wk–F/‗{print$NF}‘文本过滤——awk命令awk‗{name=$1;belts=$4;if(belts~/Yellow/)printname―isbelt‖belts}‘grade.txtawk‗{if($1==―M.Tansley‖)$6=$6-1;prin

t$1,$6,$7}‘grade.txtawk‗{if($1==―J.Troll‖)($1=―J.L.Troll‖);print$1}‘grade.txtawk‗BEGIN{print―Name\tDifference‖}{

if($6<$7){$8=$7-$6;print$1,$8}}‘grade.txtawk‗{tot+=$6}END{print―Studentstotalpoints:‖tot}‘grade.txt文本过滤——awk命令

ls-l|grep'.sh$'|awk'{print$9"\t\t"$5;tot+=$5}END{print"totalKB:"tot}'awk‗gsub(/4842/,/4899/){print$0}‘grade.txtawk‗$1==―J.Troll‖{printlength($1)

――$1}‘grade.txtawk‗BEGIN{printmatch(―ANCD‖,/C/)}文本过滤——awk命令awk‗BEGIN{printsplit(123#456#78,myarray,‖#‖)}‘awk‗$1==―L.Tansley‖{prin

tsubstr($1,1,5)}‘grade.txtecho―Stand-by‖|awk‗{printlength($0)}‘文本过滤——awk命令echo―65‖|awk{printf―%c\n‖,

$0}‘awk‗{printf―%-15s%s\n‖,$1,$3}‘grade.txtawk脚本及其执行(见age.awk)文本过滤——awk命令awk数组for(subscriptinarray)printarray[subs

cript]sed用法非交互式文本流编辑器。读取一遍数据至缓冲区,不与初始文件打交道。sed[options]sed-commandinput-filesed[options]–fsed-script-fileinput-filesed-script-file[opti

ons]input-file(>out-file)sed用法sed选项:-n:不打印-f:执行脚本-h:帮助信息-v:版本信息-e:使用sed命令编辑sed中定位文本行号正则表达式sed用

法例子文件:quote.txtsed‗2p‘quote.txtsed–n‗2p‘quote.txtsed–n‗1,3p‘quote.txtsed-n'/\<e/p'quote.txtsed

-n'/The/'pquote.txtsed-n'4,/The/'pquote.txtsed用法sed-n'/\$/'pquote.txtsed-n'1,$p'quote.txtsed–n‗/.*ing/p‘quote.txtsed-e'/music/

='quote.txtsed-n'/music/='quote.txtsed-n-e'/music/='-e'/music/p'quote.txtsed用法附加文本:a\[address]a\text\text\...text插入文本i

\修改文本行c\,可接受地址范围sed-e'/company/a\Thensuddenlyithappend.\Itisreallyadisaster.'quote.txtsed脚本(见append.

sed,insert.sed,update.sed,mix.sed)sed用法删除文本sed'1d'quote.txtsed'1,3d'quote.txtsed'$d'quote.txtsed'/Neave/d'quote.txtsed用法替换文本[address[

,address]]s/pattern-to-find/replace-pattern/[g,p,w,n]sed's/night/NIGHT/'quote.txtsed's/\$//'quote.txtsed-n's/\$//p'quote.txtsed's/The

/Wow!/g'quote.txtsed-n's/The/Wow!/gp'quote.txtsed's/The/Wow!/gwsed.out'quote.txtsed用法sed-n's/nurse/"Hello"&/p'quote.txtsed‗1,2wf

ile2‘quote.txtsed‗/Neave/wfile3‘quote.txt读文本sed'/company/rsedex.txt'quote.txtsed'/.a.*/q'quote.txtsed-n'1,$l'

func.txtsed用法常用例子:echo"MrWillis"|sed's/Mr/&Bruce/g'echo"account.doc"|sed's/^.//g'echo"accounts"|sed's/$/.doc/g'x="Departmen

t+payroll@BuildingG"echo$xecho$x|sed's/\+/of/g'|sed's/@/Locatedat/g'tr命令用于字符转换或抽取控制字符echo―hellooo,World‖|tr–s―[a-z][A-Z]‖echo―helloooworld‖|tr–s―[

a-z]‖―[A-Z]‖tr–s―[\015]‖―\n‖<input_filetr–s―\r‖―\n‖<input_filetr–s―[\015\032]‖―[\012*]‖<input_fileecho0000|tr―[0*4]‖―*‖Shell脚本#!/bin/bash#

name:cleanup#Thisisageneralcleanupscriptecho―Startingcleanup...wait.‖rm/usr/local/apps/log/*.logtail–40/var/adm/messages>/tmp/mes

sagesrm/var/adm/messagesmv/tmp/messages/var/adm/messagesecho―finishedcleanup‖Shell脚本#!/bin/sh#!/bin/bash#!/usr

/bin/perl#!/usr/bin/tcl#!/bin/sed–f#!/usr/awk-f登录方式下的shell启动UNIX内核initgettylogin用户有效?/etc/inittab/etc/passwd终端Shell程序用户名和口令命令是否b

ash的激活模式交互式——标准输入输出连到终端上login:读初始化文件非login:~/.bashrc受限:禁止一些操作(改变目录、修改$SHELL和$PATH变量、运行exec、运行包含/的命令,及使用重定向等)非交互式——用来运行shell脚本if[-n$BASH_EN

V];then―BASH_ENV‖;fibash的激活模式——选项-cstring-i-r--restricted--login--posix--noprofile--norc--rcf

ilefile--verbose--help--version控制bash的行为set可在命令行、初始化文件、脚本中使用set–a(set–allexport)set+a...shopt命令shopt–

scdable_varsshopt–ucdable_vars二者都有很多可设置的选项,参看manbash初始化文件/etc/profile$HOME/.Bash_profile$HOME/.Bashrc$HOME/.Bash_lo

gin$HOME/.profile设置文件创建的umask和$PATH$TERM、$MANPATH、$PS1、$PS2Shell环境变量$PATH,$MANPATH,$LD_LIBRARY_PATH,$CD_PATH$EDITOR,$VISIUAL$M

AIL,$MAILCHECK$HISTSIZE,$HISTFILE$TERM,$PAGER...alias别名:交互式shell中缩短长命令的方法aliasrm=―rm–i‖aliaschomd=―chmod‖unliasrm\rm关于变量内

部变量built-in:(vs.shellcommand)见internalvars.txt例子(void.sh,seconds.sh,specialvar.sh)关于变量declare——变量的声明decl

are-rvar1declare-inumber(见delcare.sh)declare-aindicesdeclare-ffunctionsdeclare-xvar3(见declare_x.sh)对数字类型的操作:expr,

let(见let.sh,expr.sh)y=`expr$y+1`,lety=y+1,y=$(($y+1))三者等价$RANDOM:返回随机数((...)):进行数学运算(见arith.sh)数组一维数组area[11]=23area[13]=37area[5

1]=UFOs或declare–aarea${area[11]}见(array.sh)Shell本地变量在本次Shell生命期里使用的变量变量的赋值,参见variable.sh清除变量:unset显示变量:set测试变量echo―Theskyis${COLOR:-grey

}today‖echo${File:=my}echo${File:+another}参数替换(parametersubstitution)DEFAULT_FILENAME=generic.datafilename=${1:-$DEFAULT_FILENAME}#Ifnotot

herwisespecified,thefollowingcommandblockoperates#+onthefile"generic.data".##Commandsfollow.参数替换(parametersubstitution)${parameter?err_msg}

${parameter:?err_msg}(见checkvar.sh)参数替换(parametersubstitution)${var#Pattern},${var##Pattern}strip_leading_zero(){val=${1#0}return$val}见param_subst

.sh关于变量——stringstring的长度${#string}exprlength$stringexpr"$string":'.*'见stringlen.sh,stringmatch.sh,stringind

ex.sh,stringextract.sh,stringremoval.sh,stringreplace.shShell本地变量变量的导出export:将变量导出到子进程(见father.sh和child.sh)

local:局部变量参数位置变量$pgfindfile#!/bin/bash#findfilefind/-name$1–print$./findfileprofile参数位置变量$pgwho_is#!/bin/bash#who_isgrep$1passw

d|awk–F:‗{print$4}‘$./who_isfangw例子。$#,$*,$@的例子(见allparams.sh)脚本参数$0..$9$#,$*,$@shift命令getopts命令见sh

ift.sh,tr_case.sh,脚本参数getopts用法:设定标准选项,在脚本或函数参数中查看所有以-开头的参数(即选项串)是否匹配标准选项。如果匹配,将匹配的选项赋给变量getopts标准选

项变量例如:getoptsahfvcVAR见backup.shshell数字常量默认10进制8进制:03216进制:0x322-64进制:base#number退出/返回状态$?:返回上一条语句或脚本执行的状态0:成功1-25

5:不成功exit命令exitexitnnnShell编程条件测试控制流结构(循环、分支等)shell函数调试脚本条件测试test或[]:测试命令执行状态、文件状态、比较表达式ifcm

pab&>/dev/null#Suppressoutput.thenecho"Filesaandbareidentical.―elseecho"Filesaandbdiffer."fi条件测试ifgrep-qBashfilethenecho"Filec

ontainsatleastoneoccurrenceofBash.―fi$[-wvartest.sh]$test–wvartest.sh条件测试测试文件状态-d:目录-s:文件非空-f:正规文件-w:可写-L:符号链接-u:文件有s

uid位-r:可读-x:可执行例子条件测试比较表达式-eq=字符串:-ne!=-gt>-n:非空串-lt<-z:空串-le<=-ge>=条件测试逻辑操作-a,&&-o,||!例子gzip.sh控制流结构

if...then...else...fi见ifmkdir.shif...then...elif...then...fi见ifelif.sh控制流结构case"$variable"in"$condition1")command

...;;"$condition2")command...;;*)command...;;esac参见case.sh,case2.shcaseparam.shcasevalid.sh控制流结构循环(while,for,untilloops)for循环forargin[list]docomm

and(s)...done(参见forlist.sh、forparams.sh、forcp.sh)控制流结构for循环for((expr1;expr2;expr3))docommand(s)...done

见for_c.sh控制流结构while循环while[condition]docommand...done参见while1.sh、whileread.sh等控制流结构until循环until[condition-is-true]doco

mmand...done见until.sh控制流结构循环控制:break,continuebreak:推出循环或case语句(break-levels.sh)continue:跳过本次循环步shell函数functionfunction_name{command...[re

turn(exit_status)]}function_name(){command...}参见functionfile.sh,functions.sh与direc_check.sh在命令行执行函数,顺序先于同名命令shell函数localvari

ables生命期只在block或function中见local.sh子shellshell脚本——subshell(command1;command2;command3;...)作为子shell运行externalcommandvs.builtinbuiltin:

helphelpechohelpgetopts创建屏幕输出和输入创建屏幕输出控制光标出现与否、光标位置、颜色控制需要在echo语句中使用控制字符(color.sh);或者:专门的tput命令(sh)创建屏幕输入验证输入数据的有效性。Shell工具创建日志文件或临时文

件检测信号eval创建日志或临时文件创建日志文件根据日志文件创建的日期和时间识别日志文件date命令(log.sh)date--date'2daysago'date--date'3months1day'da

te--date'25Dec'+%jdate'+%B%d'date-d1-may'+%B%-d'创建日志或临时文件创建唯一的临时文件利用$$,当前进程的进程号,作为临时文件扩展名信号系统向脚本或命令发出的消息,告知某些时间的发生

常用信号1SIGHUP挂起或父进程被杀死2SIGINT键盘中断ctrl+c3SIGQUIT从键盘退出9SIGKILL无条件终止11SIGSEGV内存段冲突15SIGTERM软件终止(kill中默认信号)信号tra

p―name‖signalsname:处理捕捉到的信号的专门函数signal(s):逮捕捉的信号trap―‖23trap―command‖23trap–23trap23见trap.sheval对参数进行

两次扫描和替换.myfile=―catctrlchar1.txt‖echo$myfilemyfile=―catctrlchar1.txt‖evalecho$myfilemyfile=―catctrlchar1.txt‖eval$myfileeval对最

后一个参数的表示evalecho\$$#catdataPCpentiumIVMONITORsvgaNETWORKyes希望echo$PC,得到pentiumIV(见eval.sh)习题:写一段脚本,将自

己的内容反向输出到标准输出。提示:逐行将脚本读入,反向显示DOS文件向LINUX下文件的转换wc–l(统计文件的行数)两个文件A,B,求A-BBash帮助manbash

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?