- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第2章LinuxC编程环境;本章概述
;本章学习目标;本章主要内容;2.1Shell编程基本概念;二.Shell变量与赋值表达式
1.变量定义和赋值
Shell变量无需事先定义直接复制,在给变量赋值时自动获得定义
Shell变量值的类型都是字符串,可以将任何字符串赋值给变量。值通过等号直接赋给用户变量,在变量、等号和值之间不能出现空格
示例:
var1=10
var2=57
var4=testing
var5=stillmoretesting
;exvar.c:
#!/bin/bash
#testingvariables
num=3
guest1=Alice
guest2=BillGates
msg=$guest1logsoutbeforethe${num}thday.
echo$msg
echocurrentdirectoryof${guest2}is`pwd`.
;思考题;四、Shell输入输出语句;示例程序io.sh:
#!/bin/bash
#testingreadandechocommands
read-pEnteryourname:firstlast
echoCheckingdatafor$last,$first
read-s-p请输入您的密码:pass
echoIsyourpasswordreally$pass?“
$chmod+xio.sh
$./io.sh
Enteryourname:BillGates
CheckingdataforGates,Bill
请输入您的密码:123456
Isyourpasswordreally123456?
;五、退出脚本和退出状态;(1)用户设置程序或脚本退出状态码,格式为:
exit状态码
状态码为0表示脚本执行成功,为非0表示失败,非0编码与失败原因之间的对应关系由编程人员自行定义。
(2)系统设置退出状态;Linux将进程(命令、脚本执行)的退出状态保存在一个特殊的shell变量(?)中,可在进程结束时,立即执行echo等命令读取该变量的值来取得前一个命令或脚本的退出状态。;status4.c
intmain()
{exit(5);
}
$gcc-ostatus4status4.c
$./status4
$echo$?
5;练习题2.2在当前目录下输入命令”ls-l”的输出结果如下:
-rw-rw-r--1xuqgxuqg114Jul1519:07test.sh
-rw-rw-r--1xuqgxuqg110Jul1518:46semlib.c~
drwxr-xr-x4rootroot4096Feb100:18dir1
请问下列各命令序列中echo$?的输出结果是什么?(注意:LinuxShell允许在一行输入多个命令,只需命令间以分号隔开)
./dir1;echo$?;echo$?
cd;echo$?
./semlib.c;echo$?;$echo$?
./abcd;echo$?;2.2Shell数学运算与字符串处理;二、Shell中字符串处理
BashShell本身没有库函数概念,对字符串处理的支持主要通过expr、awk等命令来实现;找匹配字符串长度;思考题2.3请写出执行下面???本的输出:
#!/bin/bash
string=hello,everyonemynameisxiaoming
echoecho${#string}
exprindex$stringmy
exprmatch$stringhell.*
exprmatch$stringhell
echo${string:10:5}
exprsubstr$string105
;2.3Shell条件与if控制结构
Bash可以对Shell脚本进行流程控制,提供if、case和for等控制结构,使Shell具有C、Java等高级语言的流程控制能力
一、if结构化语句
;示例1:condif1.sh;示例2:condif2.sh;示例3:condif3.sh;二、test命令
test命令可以做数值比较、文件属性检查、字符串比较,用于if条件判断。
过test命令算出的条件值为true,则test命令将其退出状态码设置为0,if语句执行其Then分支,如果算出的条件值为false,则test命令退
文档评论(0)