高频工数软件微机基础1005第二章unix cshell_第1页
高频工数软件微机基础1005第二章unix cshell_第2页
高频工数软件微机基础1005第二章unix cshell_第3页
高频工数软件微机基础1005第二章unix cshell_第4页
高频工数软件微机基础1005第二章unix cshell_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章UNIX⊙B 在表达式之前必须用空格与test分开 ⊙B 【例2-26】测试表达式$ $echo $ $echo $$ $echo⊙Bs的文件测试表达-r 文件file存在且可读-w 文件file存在且可写-x 文件file存在且-s 文件file存在且非空-d dir是一-f 文件file存在并且是普通文件(in-h 文件file存在并且是符号连接文件(symbolfile1-nt file1-ot file1file2⊙B

语句 表达语句组elif表达式

语句 表达语句 !表达语句 then 语句if!-d$1echo$1isnot -d$1then:echo$1isnotuntil语句2.4.7函 【注】函数是Bs和Cs都提供的功能 ]{}]

{} 函数 [实参【例2-27】函数调用thank echo“Thank} $sh27Thankyou!除了在Bash程序中,可以调用已定义的函数之外,Bash还允许在s 他s程序中调用已定义的函数。$ 文 文件,类似于“运行”配置文件,除了当场运行s文件,还会s 添加s functionSeeYou(){echo“Seeingyouatmy}$. $ Seeingyouatmyunset函 $...functionSeeYou(){echo“Seeingyouatmy} $ 文prtDay(){echo“todayisecho“yesterdaywas$1”echo“tomorrowwillbe$3”} $todaywas3- 调用yesterdaywas3- 调用tomorrowwillbe3- 调用thank(){echo }thanx() }$ $thanx ThankWang!Thank【例2-31】输 函数示例UNIX在获取 入的任何字符。以s文件my_passwd.sh为例,内容为:stty echonenter read echoyourpasswdis stty }$ $enter 输入:a1b#<CR>(不显示yourpasswdis $enter yourpasswdis <HOME>显示为乱【例2-32】读单个字符函数示以下readOneCh函数可以实现不要回车就能获得输入一个字符的功能。readOneCh()- stty ONE=`ddif=/dev/ttybs=1count=1 export stty stty }echoninputone 调用函数取一echoyourinputis $ $inputonechar:□w yourinputis[w]C本节将介绍C 的主要特点,并且在“附录2.5”中提供了B 、Bash和C Cs的特

※假名(别名)机制(Cs※命令史机制(Bash和Cs※工 栈(Bash和CsBs Cs Bs和 .□配置文C source□配置$.□~/.bashrc $是BS和Bash的缺省待命符在Cs中,运行配置文件的操作为:% %是CS的缺省待命%运行一个s程序必须用某个s解释器(BsBash或Cs)来解释这个sUNIXs程序的种类,而是由程序文件的首行UNIXB #! 则按B UNIXC #! 则按C #! 通常,缺省以上首行的程序将默Bs,如果首行是注释而不是S种类的将作为Cs进行解释。启动某s解释器运s程序,也仅仅表示在该程序运s解释器来解释程序中的各种s语句和控制结构。一旦程序结束,将仍然回到原来的s环在Bs环境下运行Cs程序,与执行/bin/csh转到Cs环境是不一样的。一旦这个Cs程序结束,将依然处在Bs环境之下而不会改为Cs环境。例如,csh_file是Cs程序:$ 在Bs下运行Cs程 Bs环$ 在Bs下转到C Cs环Bs文件#!/bin/shif[!-d$1]echonot

Cs文件#!if(!-d$1) echonotdir

#!/bin/bashif!-d$1echonot在以下三个s文件中,sh_1将按Bs s文件sh_1:if[!-d$1]echonot

s文件sh_2:if(!-d$1) echonotdir

s文件sh_3:echo$HOMEls ^D键,请求列出所有可能匹配 /文件名【例2-33 /文件名补齐示set % 假设c和s是vi 在vis后按<ESC>,将补齐为%vis 按斜杠/键及^D键,请求列出s下的所有文 %vis 继续键入p,再按%vis %vis ⊙Bs和2>⊙C>&file 在B $ 2>% >&⊙B 变量=set变量= $?变则将获得一个数值。如果为0,表示该变量尚未定义。如果为1,表示该变量已经定义。【例2-34】C set %echox=$x unset %echo Cs的环境变量通常全部用小写字母表示。同时,在Cs环境下,也能Bsetenv□环境变量□ 或set□环境变量=% 在Bash和CS中“cd~”等价为”cd”或者 ~/bin”等价为 在CS 中,~还可以用来匹配其他用户的。例如,用户me01想查看另外一个用户me00下的文件,可以执行以下命令:% %setenvpath(.:~/s 通常系统管理员将prompt的初值设为%,用户可以修改。例%setenv (命令序号将在命令史中介绍) $环境 $环境 $环境%%⊙Bs和Bash的输入语 变 从stdin变 变量 从stdin变量,$<表示标准输⊙B echo变量或字符 echo-n变量或字符echo-n变量或字符⊙Bs的运算语句格式变量=`expr□表达式□运算符□表达式let□“变量□=□表达式□运算符□表达式@变量□=□表达式□运算符□BsletCs:⊙Bs的文件测试表达-r 文件file存在且-w 文件file存在且-x 文件file存在且-s 文件file存在且非空(Cs不可用-d dir是一-f 文件file存在并且是普通文件(in-e 文件file存在-o 文件file存在而且用户是该文件的主人C if(□表达式语句elseif(□表达式语句

语句请比较以下s程序BCechonoechoechonoechoechonoforeach□索引变量□(□变量表语句 BCif[□!□-s□$i□]echofile$iisechofile$iisif(□-z□$argv[i]□)thenechofile$argv[i]isemptyswitch□(□变量case情况1:语句组;breaksw B和C*.c)echo*.o)echo echo$iisaCfileisanOBJfile;;isanotherfilecase*.c:echo$iisaCfilecase*.o:echo$iisanOBJdefault:echo$iisanotherfilewhile□(□表达式语句 BCechon=echon=let“n=n+1”echon=假名(别名) alias[假名[命令] unalias假 撤消假alias假名命 将命令起名为假alias假 显示假名所定义的 % ls-% % % %alias % %%aliasls“ls- %aliaslsls-aalias “cd alias cd;% % % 等价为 % 则在每次登录时,~/.alias就会被自动运行一次alias定义生效。 ls -l % 命令史机制为了便于理解,在配置文件中增加语句“setprompt=[\!]>”,表示将待命符设置为“[命令 >set > ls-catvicc-cset> [7 catvicc-cseth格式为 >!1 ls-l 执行命令ls->!-2 vicc-chls-h [10]>!!hcc-chls-hh格式为 >!c cc-cmain.c>!ca catmain.c> > 格式为 ^匹配的字符串^新的字符串>^main^../tst/try^ cat../tst/try.c 将catmain.c改为cat../tst/try.c格式为 >lsmain.ctry.c >cc-c!!:2 cc-ctry.c> 显示第15条命lsmain.c>cp!*../tmp cpmain.ctry.c../tmp> >ls!$ ls../tmp> ※习 (C 2-11.2,2-※上机运行题:sh30(Bash函数),my_passwd(输入),getOneCh(读单个字符※上机及习题:(Cs)2-10.1,2-10.2,2- (C程序:映象文件及内存的大小 附录2.5BS、Bash和C BBashC ;;;///(((<<<>>>>>>>>>2>2>>&分界分界分界|||星号“*”,问号“?”,一对方括号星号“*”,问号“?”,一对方括号星号“*”,问号“?”,一对方括号、⊙变量=变量= 等号两set□变量=$变 或${变量$变 或 ${变量$变 或 ${变量变量变量set□变量unsetunset 或 或 环境变量=环境变量= 等号两set□环境变量= 或setenv□环境变量echo$环境echo$环境echo$环境变量prtenv□$环境B BashC !!.配置文.配置文 或者非注释行#!bin/cshbin/shread变read变set变量echo echo- echo- 变量=`expr表达式等号两空变量=`expr表达式等号两空@变量=let变量=表达式$*或者变量未定义:$?变量变量已定义:$?变量set数组名 $数组名[1],$数组名[2],$#数组数组未定义:$?数组名为数组已定义:$?数组名为B BashC +、-、*、/、+、-、*、/、+、-、*、/、-lt、-gt、-le、-ge、-eq、--lt、-gt、-le、-ge、-eq、-<,>,<=,>=,==,-a、-o、-a、-o、+=、-=、*=、/=、<<=、>>=、&=、^=、+=、-=、*=、/=、<<=、>>=、&=、^=、 [□表达式 或者test□表达[□表达式或者test□表达(□表达式 s1□==□s2s1s2 - s是空字-s是空字- s是空字- s是非空字符-s是非空字符- s是非空字符- 文件file存在且-文件file存在且- 文件file存在且- 文件file存在且-文件file存在且- 文件file存在且- 文件file存在且-文件file存在且- 文件file存在且- file存在且-file存在且- file存在且- 文件file存在且-文件file存在且非- 文件file存在且非-file为普通- file为空-file为符号- file为本用file1□- file1□- goto语句标goto语句标goto语句标B BashC ⊙

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论