欢迎来到天天文库
浏览记录
ID:57402260
大小:137.50 KB
页数:45页
时间:2020-08-18
《《shell编程初步》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Shell介绍曾树洪什么是shell一种程序shell1执行程序2变量和文件名替换3I/O重定向比较:wc–lclz和wc–l2、wc-l5环境控制6解释性程序设计语言命令文件创建文件$vinuwho3、wc–l$chmod+xnu执行文件$nu注释#后直到行尾都是注释变量变量名:以字母或下划线开始,后跟0或若干个字母、数字或下划线字符。赋值variable=value当向shell变量赋值时,不管值是什么,shell都把它处理为字符串.显示变量的值echo$variable$command=wc$option=-l$file=zsh$$c4、omand$option$fileshell将其转换成wc–lzsh环境变量echo$HOMEecho$PATHecho$0setabcecho$#echo$$$$变量和临时文件$$当前进程的ID号$grep–v“google”express>/tmp/express$mv/tmp/expressexpress$grep–v“google”express>/tmp/express$$$mv/tmp/express$$express局部变量$catvartestecho:$x:$x=100$./vartest问现在显示多少?$catvartest2X=50echo5、:$x:$x=100$./vartest2问现在显示多少?导出变量$catvartest3echox=$xechoy=$y$X=100$Y=10$./vartest3?$Exporty$./vartest3?注:这里的3,4,5是有前后关系的,彼此影响的。$catvartest4x=50y=5z=1exportzvartest5$catvartest5echox=$xechoy=$yechoz=$z$./vartest4?export-p列出所有变量的清单(….)和{...;}()是对一串命令重新开一个子shell进行执行{}对一串命令在当前shell执行()和6、{}都是把一串的命令放在括号里面,并且命令之间用;号隔开()最后一个命令可以不用分号{}最后一个命令要用分号(….)和{...;}{}的第一个命令和左括号之间必须要有一个空格()里的各命令不必和括号有空格()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令(….)和{...;}$x=50$(x=100)$echo$x?${x=100;}$echo$x?给子shell传递变量的另一方法$catfoo1echo:$x:foo2$catfoo2echo:$x:$foo1?$x=100foo1?$echo:$x:空值如果一个变量没7、有值,就说它含有空值.当shell进行变量值替换时,空值被从命令行中清楚掉.$Echo:$nozsh:假设nozsh没有赋值.::$wc$nozsh–l$nozshzshshell将其转换成wc–lzsh文件名替换和变量shell在给变量赋值时不进行文件名替换shell先做变量替换,再做文件名替换$x=*把字符*存入变量X中,而不是把当前目录中的所有文件名存入变量x中.$echo$x$filename=zshzsh为当前目录下的一文件名比较$mv$filename$filenameX$mv$filename${filename}X$mv$filename“$fi8、lename”X内部的整数算术运算$((expression))expression由变量和运算符构成。$echo$((i+1))i前面不用$符号。i=$((i*5))readreadvariables从标准输入读入一行数据,并把所读入的第一个词赋给variables中列出的第一个变量,第二个赋给第二个变量。。。。$readxy习题编写一个名为nf的程序,显示当前目录中的文件数。键入程序并测试。编写一个名为whos的程序,显示排好序的已登录用户清单。只显示用户名,不要有其他信息。键入程序并测试。引用单引号示例:在express查找:google$grepgoog9、leexpress在express查找:googleis$grepgoogleisexpress思考:shell传了几个参数给grep?$grep‘googleis’express思考:shell传了几个参数给grep?单引号shell会忽略掉单引号内的所有特殊字符的原来作用。思考text=‘*meansallfilesinzhedirectory’$echo$text$echo“$text”双引号双引号中,除了下面的三种字保留本意外,其他的被shell忽略:1:$2:反引号``3:反斜杠反斜杠作用1:等价与在一个字符前后加上单引号比较:echo>和echo10、>x=*比较:echo$
2、wc-l5环境控制6解释性程序设计语言命令文件创建文件$vinuwho
3、wc–l$chmod+xnu执行文件$nu注释#后直到行尾都是注释变量变量名:以字母或下划线开始,后跟0或若干个字母、数字或下划线字符。赋值variable=value当向shell变量赋值时,不管值是什么,shell都把它处理为字符串.显示变量的值echo$variable$command=wc$option=-l$file=zsh$$c
4、omand$option$fileshell将其转换成wc–lzsh环境变量echo$HOMEecho$PATHecho$0setabcecho$#echo$$$$变量和临时文件$$当前进程的ID号$grep–v“google”express>/tmp/express$mv/tmp/expressexpress$grep–v“google”express>/tmp/express$$$mv/tmp/express$$express局部变量$catvartestecho:$x:$x=100$./vartest问现在显示多少?$catvartest2X=50echo
5、:$x:$x=100$./vartest2问现在显示多少?导出变量$catvartest3echox=$xechoy=$y$X=100$Y=10$./vartest3?$Exporty$./vartest3?注:这里的3,4,5是有前后关系的,彼此影响的。$catvartest4x=50y=5z=1exportzvartest5$catvartest5echox=$xechoy=$yechoz=$z$./vartest4?export-p列出所有变量的清单(….)和{...;}()是对一串命令重新开一个子shell进行执行{}对一串命令在当前shell执行()和
6、{}都是把一串的命令放在括号里面,并且命令之间用;号隔开()最后一个命令可以不用分号{}最后一个命令要用分号(….)和{...;}{}的第一个命令和左括号之间必须要有一个空格()里的各命令不必和括号有空格()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令(….)和{...;}$x=50$(x=100)$echo$x?${x=100;}$echo$x?给子shell传递变量的另一方法$catfoo1echo:$x:foo2$catfoo2echo:$x:$foo1?$x=100foo1?$echo:$x:空值如果一个变量没
7、有值,就说它含有空值.当shell进行变量值替换时,空值被从命令行中清楚掉.$Echo:$nozsh:假设nozsh没有赋值.::$wc$nozsh–l$nozshzshshell将其转换成wc–lzsh文件名替换和变量shell在给变量赋值时不进行文件名替换shell先做变量替换,再做文件名替换$x=*把字符*存入变量X中,而不是把当前目录中的所有文件名存入变量x中.$echo$x$filename=zshzsh为当前目录下的一文件名比较$mv$filename$filenameX$mv$filename${filename}X$mv$filename“$fi
8、lename”X内部的整数算术运算$((expression))expression由变量和运算符构成。$echo$((i+1))i前面不用$符号。i=$((i*5))readreadvariables从标准输入读入一行数据,并把所读入的第一个词赋给variables中列出的第一个变量,第二个赋给第二个变量。。。。$readxy习题编写一个名为nf的程序,显示当前目录中的文件数。键入程序并测试。编写一个名为whos的程序,显示排好序的已登录用户清单。只显示用户名,不要有其他信息。键入程序并测试。引用单引号示例:在express查找:google$grepgoog
9、leexpress在express查找:googleis$grepgoogleisexpress思考:shell传了几个参数给grep?$grep‘googleis’express思考:shell传了几个参数给grep?单引号shell会忽略掉单引号内的所有特殊字符的原来作用。思考text=‘*meansallfilesinzhedirectory’$echo$text$echo“$text”双引号双引号中,除了下面的三种字保留本意外,其他的被shell忽略:1:$2:反引号``3:反斜杠反斜杠作用1:等价与在一个字符前后加上单引号比较:echo>和echo
10、>x=*比较:echo$
此文档下载收益归作者所有