《linux第八讲linux下shell编程(曾新)重点》由会员分享,可在线阅读,更多相关《linux第八讲linux下shell编程(曾新)重点(32页珍藏版)》请在金锄头文库上搜索。
1、Shell 编程,数学与计算机学院 硬件教研室,2018/9/26,本章主要内容,2018/9/26,Shell的基本使用,2018/9/26,Linux下有多种shell可以使用,red Hat Linux9.0中默认使用的shell是bash。 Shell是Linux下的命令解释程序,它负责将用户输入的命令传递给内核执行并将执行的结果反馈给用户。,Shell的基本使用,2018/9/26,Linux中命令分为:内部命令与外部命令,内部命令是常驻内存的,而外部命令在用户需要时才从硬盘中读入内存,例如:exit、export、kill等常用内部命令。 命令的别名:alias list=ls -
2、l 设置别名unalias list 解除别名,本章主要内容,2018/9/26,Shell程序的基本结构,2018/9/26,1、shell程序都以#!开头,后面跟此shell解释器的路径; 2、第二行的shell是注释语句,一般放置程序名称;,Shell程序的执行,2018/9/26,本章主要内容,2018/9/26,局部变量,2018/9/26,Shell语言是一种解释型语言,它与C或java不同,编程时无须事先声明变量。 Shell程序的变量无数据类型,可以使用同一变量存放不同数据类型的值,变量赋值之后,只需在变量前面加一个$符号就可以访问变量的值。,局部变量,2018/9/26,被作
3、为不可识别的命令而产生错误!,环境变量,2018/9/26,环境变量是在一个用户的所有进程中都可以访问的变量,系统中常用环境变量来存放常用的信息。 利用export命令查看环境变量列表。,环境变量,2018/9/26,环境变量的访问则是在前面加一个$符号。 定义环境变量(一般大写) export AA=1234 echo $AA 在当前shell运行的所有进程中有效,但未保存到系统中,一旦系统重启则无法访问这些环境变量。,环境变量,2018/9/26,环境变量,2018/9/26,环境变量的系统配置文件是 /etc/profile 。 gedit /etc/profile 在此文件的最后一行输
4、入:export A1=helloexport A2=1234 保存退出,重启系统就完成了永久设置。,环境变量,2018/9/26,位置变量,2018/9/26,位置变量是shell程序在运行时输入的参数。 利用变量的形式来调用这些参数,参数被存放在1-9的9个特殊变量中,同普通变量一样,前面加上$来使用。 例如:传递参数“my name is zhang san”,位置变量,2018/9/26,本章主要内容,2018/9/26,变量赋值,2018/9/26,算术运算,2018/9/26,+、-、*、/、*(幂)、%、+=、-=、*=、/=、%= 使用运算符要注意运算顺序: 1、利用expr改
5、变顺序 echo expr 1+2 2、利用let运算 let b=1+2 echo $b,算术运算,2018/9/26,本章主要内容,2018/9/26,Shell中的输出,2018/9/26,echo $str echo $strfilename echo $strfilename c:末尾加上此符表示此行输出完毕后不换行。 t;制表符。 n:输出换行,Shell中的输入,2018/9/26,Read命令可以从键盘或文件中读入信息,并赋给变量。 1、读入一个变量(read A); 2、读入多个变量 (reda A B C),若读入的数值多余变量个数,则将多余的值赋给最后一个变量; 3、从文
6、件中读入数据,并赋给变量(read A Bfilename 2、commandfilename 3、commandfilename2,引号的使用方法,2018/9/26,1、双引号用来引用一个字符串,字符串内不能直接使用$、引号、双引号、反斜线、反引号这些特殊字符,若字符串内无空格则可省略双引号。 例如:AA=abc AA=“abc cde” 2、单引号用来引用一个字符串,用法和双引号相似。 区别:双引号内出现的shell变量会被替换为变量的值,而单引号则不会。 例如:echo name $HOME 得到:name $HOMEecho “name $HOME” 得到:name /root,引号的使用方法,2018/9/26,3、反引号用于执行引号内的系统命令,并返回结果。,反斜线的使用,2018/9/26,分斜线用于对特殊字符进行转义。,综合例题1:,2018/9/26,请利用bash下的shell进行编程,输出1+2+3+100的总和sum,综合例题2:,2018/9/26,请利用bash下的shell进行编程,输出s=3*(yx)+4y2+5x+6的计算结果s。,2018/9/26,