版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 UNIX文件系统高级操作8.1 shell读写文件,UNIX系统的标准流 当程序读、写数据,视为来自数据源的流、去向目的地(数据汇)的流。数据源、汇可以是文件、设备、内存或是网络连接等,想象数据在这其中“流”动一样。 在UNIX系统中,文件(按字节组织)之间,设备之间的信息传递是按字节流完成的。因此信息流的概念在UNIX中很重要。,8.1.1 命令处理流,由命令处理即“加工”,要输入和输出的信息可以看作信息流。 如果不考虑“信息流”中包含的具体内容,只关心“信息流”和“加工”之间的关系,我们可以将命令处理中的“信息流”描述为: “命令输入流” “命令输出流”,它们都属于命令处理流。 8
2、.1.2 信息流,8.2 shell输入输出重定向,默认状态下,shell将命令的输入流设定为键盘,输出流设定为显示器,错误流也定义为显示器。但是在有些情况下,我们可以改变这些流的设定。改变流的设定常用的符号有 , , 三个符号。,例如: ls -l ls.txt,ls -l /home/user1 ls.txt,ls -l /home/user1 ls.txt,8.2 shell输入输出重定向,重定向符表示将标准输入从键盘重新定义到另外的流。 例如:prog infile, 即prog命令将从文件infile中读取参数。 执行一个shell程序也可以使用这种方式。例如 sh user1.sh
3、 就表示要执行user1.sh这个shell程序。,重定向符,也能够混合使用,例如: prog outfile 表示prog命令从infile中获取命令参数,然后将执行结果输出到文件outfile中。,8.3 错误流重定向,在UNIX系统中,错误信息流是指在命令或程序执行中出现错误时系统给出的提示或警告信息,UNIX中将它们作为一个独立的标准输出流进行定义,错误信息流通常定义为显示器。当然,用户也可以根据需要对它进行重定向。不同的shell在这方面有所不同。,Cshell中使用的错误流重定向符是: then . /etc/bashrc fi,用户工作环境设置,这个shell会继续调用/etc/
4、bashrc这个文件,在这个shell中将设置环境变量。正常登录后,一个Bshell的环境大致如下所示: INPUTRC=/etc/inputrc USER=test MAIL=/var/spool/mail/test HOSTNAME=linux9 OLDPWD=/home/test HOME=/home/test SUPPORTED=zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en G_BROKEN_FILENAMES=1 PS1=$ PS2= ,用户工作环境设置,LOGNAME=test _=clear COLORS=/etc/DIR_COLORS
5、TERM=ansi PPID=3296 PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin REMOTEHOST=2 LANG=en_US.UTF-8 HISTSIZE=1000 SHELL=/bin/bsh PWD=/home/test/t,其他的shell如Cshell,Kshell均是大同小异,用户工作环境设置,shell变量类型:环境变量和用户变量(自定义变量) 显示和清除变量的命令:set和unset 标准变量的解释: HOME户主目录的完整路径。 IFS内部字段分隔符。如ls l中间的空格的约定。 MAIL指定接
6、受邮件的文件名。 MAILCHECK设置巡检邮箱的周期。 PATH设置shell定位命令要搜寻的目录。路经前缀:号。 PS1命令提示符1。 PS2命令提示符2。命令输入中提示符 CDPATH设置绝对路径。 SHELL设置用户登录shell的完整路径。 TERM设置用户终端类型。 TZ设置用户所在时区。,第四章 vi编辑器的使用4.1 vi编辑器,Vi编辑器是全屏幕文本编辑器。 有两个版本: view编辑器只读 vedit编辑器 Vi的工作方式: 命令模式:初始模式,键入命令可实现删除行、查找字、移光标等操作。 文本输入方式:按键解释为光标示意下的文本输入。 *状态行,4.2 基本的vi编辑器命
7、令,进入vi编辑器初始为命令模式 启动vi命令格式: vi -Rc 选项:-R只读、-c/ 输入文本要进入文本输入模式:可用i键。 键返回。 命令模式下.存盘退出vi用:wq .不存盘退出vi用:q!(强制执行) .另存为:w .编辑多文件下一个:n .读入文件追加:r ,4.2 基本的vi编辑器命令,由命令模式转入文本输入模式的控键命令 i在光标左侧输入正文 I在光标所在行首输入正文 a在光标右侧输入正文 A在光标所在行尾输入正文 o在光标所在行的下一行增添新行 O在光标所在行的上一行增添新行 R替换从光标位置开始的字符,4.2 基本的vi编辑器命令,命令模式下移动光标键的控键命令 左移(h
8、)、下移(j)、上移(k)、右移(l) $光标移到当前行尾。 w光标向右移动一个字。 b光标向左移动一个字。 e光标移动到字尾。 0(零)光标移动到当前行首。 光标移动到下一行首。 光标向右移动一格。 光标向左移动一格。,4.2 基本的vi编辑器命令,命令模式下文本修改的控键命令(通常不换模式) x删除光标位置指定字符 dd删除光标所在行 u撤销最新的修改 U撤销对当前行所做的修改 r替换光标位置上的字符 R替换从光标位置开始的字符*转换模式 .(点)重复上一次的修改,4.2 基本的vi编辑器命令,命令模式下输入命令实现的操作(要有符号前缀): 向前搜索字符串命令:/ 向后搜索字符串命令:?
9、注意操作要点:首次给定目标串值,多次无参搜索。 另外还有:wq、:q!及: :w保存文件但不退出vi编辑器 :q退出vi编辑器,前提无修改 ZZ保存文件,退出vi编辑器 :help在线帮助,第12章 Shell程序设计,使用shell程序设计,可以完成比较复杂并且自动执行的任务。shell程序在本质上是一种解释执行的脚本语言,使用的元素是UNIX系统的命令集,与windows系统bat批处理文件原理相同,但是更强大,也更灵活。 本节内容我们将使用B-shell进行shell程序设计。 1 Shell程序的执行方式 2 Shell程序的变量使用 3 test命令的使用 4 条件控制语句 5 Sh
10、ell程序调试,12.1 Shell程序的执行方式,建立一个比较简单的shell程序脚本文件test.sh,内容如下: date who ps 执行这个test.sh可以有多种方式。ps命令显示进程状态。,1)将test.sh作为shell命令的执行参数来完成该shell的执行: $ sh test.sh,2)利用输入输出的重定向方式 $ sh test.sh,3)直接执行该shell程序,但首先要保证该shell程序具备可执行的权限,可以用chmod来修改: chmod a+x test.sh, 之后在命令行执行它 $ test.sh,12.2 Shell程序的变量使用,如果shell程序只
11、能简单地执行一些命令,那shell的功能无疑是非常弱的,幸运的是,shell程序被设计为可以支持变量的使用,比如定义变量,应用变量的值等等。这使得shell程序具有异常强大的功能。需要注意的是,shell的变量只有字符串型,在shell程序中出现的数值计算都是基于字符串类型来完成的。,1)shell中的变量和变量赋值 shell 变量定义由字母开始,可以包含数字,字母和下划线,例如 var1, username,pass_word等。变量的赋值可以在程序运行中进行,也可以在变量定义时进行,例如UNIX=“SYSTEM V”,如果字符串中间没有空格和制表符,则可以不要双引号。 值得注意的是B-s
12、hell中等号的两边是不允许有空格的。,12.2 Shell程序的变量使用,2)shell中变量的访问和参数替换 在shell程序中,或者是shell命令中,使用操作符$来对shell变量进行访问。例如,要显示某个变量时,可以输入: $ echo $UNIX (系统将会显示SYSTEM V ) 在某些场合下,为了明确表示对shell变量的引用,可以用花括弧或者双引号将变量名或变量引用括起来,例如: $ echo $UNIX $ echo $UNIXAaaaaa $ echo “$UNIX” is very good,SYSTEM V,SYSTEM VAaaaaa,SYSTEM V is ver
13、y good,(a)单引号 :使用单引号时,shell将一对单引号之间的内容看成是纯粹的字符串信息,一对单引号之间可以包含更多的单引号。 $ you”kkk” $ echo this is just a test, can $you tell me the time ? 将会显示this is just a test, can $you tell me the time ?, 它不会将$you替换成“kkk“, 同时test也是作为字符串内容来处理的。,(b)双引号“ : 它将双引号之间的特殊字符作为shell中的含义来解释执行。可认为是替代单引号的特殊扩展用法。 $ file=unixshe
14、ll $ echo “the content of date is in $file” 这个例子将会显示 the content of wed Aug 16 16:20:12 is in unixshell,这个例子中,特殊部分有反引号引入命令date被解释成了当前时间的返回值,及$file被解释成了unixshell字符串。,3)shell中引号的说明: 单引号、 双引号“”、 反引号,4)变量的定义域 同其他的编程语言如C,pascal一样,shell的变量也有局部变量和全局变量的区别。通常在一个shell程序中,通过形如var1=abc方式定义的都是局部变量,只能在该shell程序的进程
15、中起作用,要定义全局变量,需要在局部变量定义之后使用export 命令来将这个变量声明为全局的: export $var1,3)shell中引号的说明: 单引号、 双引号“”、 反引号 (c)反引号 用它来赋值时,表示变量中保存的是执行对应命令的结果。 $ name=whoami $ echo $name 这个时候显示的不是字符串whoami,而是执行字符串whoami的返回结果,当然,要先保证字符串是一个合法的命令。,以下面的例子var.sh,我们来说明全局变量和局部变量的区别和使用 $ var1=csu $ echo $var1 $ sh $ echo $var1 $ exit $ ech
16、o $var1 $ export $var1 $ sh $ echo $var1,第一个echo显示的是 csu,这是通常的用法,第三行,调用sh进入一个新的shell进程,第四行的echo显示为空,因为var在这个进程中并没有进行定义,第五行,调用exit退出新建的shell回到原来shell的进程中,第六行的echo又能够正常显示了,第七行调用export,将var1定义为全局的,这样在新建的shell中,var1也能访问,,最后一行显示出csu,12.2 Shell程序的变量使用,5)Shell预定义变量和环境变量 UNIX系统中,在shell中除了用户可以定义变量外,还存在一些系统变量
17、,称为预定义变量和环境变量。实际中预定义变量和环境变量没有明显的界定,都是UNIX为了使系统能正确运行,预先设定的一些默认的系统变量。在Bshell中,用set对这些变量进行赋值,而在csh中,用setenv这个命令。通常这些系统变量是在环境设置文件如.profile, .cshrc, .login等文件中进行说明和完成赋值的。,12.2 Shell程序的变量使用,在shell编程中可以使用位置变量,类似C程序中的argc和argv参数的功能,用于对命令行中各个参数位置的描述。 #listargs.sh argv1 argv2 argv3 argv4,$0 $1 $2 $3 $4,6)Shel
18、l中命令的位置变量,几个常用的特殊变量:,12.2 Shell程序的变量使用,7)Shell中的变量替换在shell编程中,有时候会遇到这种情况,一个变量在尚未赋值的时候,就被程序进行了输出处理,这样输出的变量将会得到一个空字符串的结果。为了避免这种情况的发生,shell中引入了变量替换的概念,在变量没有赋值的时候可以用一个预先定义的字符串来替换。 替换的形式有三种,列举如下: $ var:-word 表示如果var已经被赋值,则取它的值,否则取word的值,但var不改变。 $ var:=word 表示如果var已经被赋值,则取它的值,否则取word的值,同时将word赋给 var。 $ v
19、ar:+word 表示如果var已经被赋值,则取它的值,否则var变量置为空。,8)用命令做变量替换 这个方式和用反引号相同!,12.3 test命令的使用,在shell中经常要对某些变量的值进行判断来决定分支程序的走向,如同C中使用 if( a = 0) 一样。Shell中通过test命令来完成这个功能。 test的格式表示为: test expre 或者 test expre test命令的执行结果是,如果表达式为真,则返回真值0,否则返回非0的假值。 test命令可以对文件,字符串内容,整数n等变量进行测试。,12.3 test命令的使用,1)对文件特性的测试 语法: test -dfr
20、wxs file -d file : 文件file存在并且为目录文件 -f file:文件file存在并且为普通文件 -r file: 文件file存在并且为可读文件 -w file: 文件file存在并且为可写文件 -x file: 文件file存在并且为可执行文件 -s file: 文件file存在并且文件长度为非0 例如: $ test d /home/user x2=5 ,进行字符串测试,$ test “$x1” = “$x2” $ echo $?,系统将显示1, 结果为假值,表示x1和x2不相等,12.3 test命令的使用,3)对于整数n的的测试 格式 test n1 -eq/ne
21、/lt/le/gt/ge n2 它们分别表示n1和n2之间 相等 /不相等 /n1n2 /n1=n2 时返回真值。,例 定义两个变量x1=“005” x2 =5 ,进行数字式测试,$ test “$x1” -eq “$x2” $ echo $?,系统将显示0, 结果为真值,表示数字x1和数字x2相等,12.4 条件控制语句,在结构化程序设计中,三种基本流程结构是顺序结构,分支结构,循环结构。其中的分支结构,在shell中常用if和case语句来实现。,1)if语句 if语句的分支可以有 无分支条件语句,二分支条件语句,多分支条件语句。 无分支条件语句格式如下: if 条件 then 命令组 f
22、i 当条件condition为真时,执行then后面的所有命令,condition为假则执行fi后面的语句。,12.4 条件控制语句,1)if语句 例:edit.sh 注意test中=两边有空格 if test $# = 1 then cp $1 $HOME/user1 fi vi $1 exit 0,12.4 条件控制语句,二分支条件语句: 格式为 if then else 结构 if 条件 then 命令组 else. 命令组 fi,多分支结构:分支大于2的条件语句。 if 条件1 then 命令组1 elif 条件2 then 命令组2 else 命令组n+1 fi,12.4 条件控制语
23、句,例:假设一个连续运行系统,将建立错误记录文件errorfile 并不断写入错误信息。现在要求编写一个shell程序来产生定时错误日志文件datelog,能在datelog 中体现每个时间段中的错误信息,#checkerr.sh To check error information with time stamp ! date datelog if test r errorfile thencat errorfile datelog rm errorfile else echo No error occurs during this hour! datelog fi cat datelog,
24、12.4 条件控制语句,2)case语句 可以实现多选一的控制结构 case语句的语法为: case word in 模式1 ) 命令 ; 模式2 ) 命令 ; 模式3 ) 命令 ; esac 注意,在case中,每个命名命令的结束用;表示模式匹配已经完成,不再匹配其他的模式,相当于C中的break。,12.4 条件控制语句,例:编写一段shell程序,根据执行时获取的当前时间显示不同的问候信息。cc1-cn为两个字符的串,第二字符取自列中之一。*表示任意字符序列。,# hello.sh hour=date +%H case $hour in 01-9 | 101 ) echo Good mo
25、rining ! ; 1234567 ) echo Good afternoon ! ; *) echo Good evening ! ; esac,12.4 条件控制语句,例:利用shell的位置变量参数编写一个shell,当只有一个参数时,从键盘输入文本保存到data.txt中,当有两个参数时,将参数1代表的文件内容添加到参数2表示的文件,其他情况则给出错误提示信息,# append.sh case $# in 1 ) cat data.txt; 2 ) cat $1 $2 ; * ) echo Incorrect usage !; esac,12.5 循环语句,shell中的循环有for
26、、while和until循环方式。 1)for的语法格式为: for var in list-of-vars do 命令组 done for的语法说明为:shell程序扫描变量列表list-of-vars,将其中的每一个字依次存放在var中,并执行do和done之间的语句。如果list-of-vars中有n个字,则这个for循环将执行n次。,12.5 循环语句,在需要的时候,也可以进行for循环的嵌套。 见下面的例子: cd $HOME for dir in cc work do echo “. In $dir .” cd $dir for file in *.c do ls l $file
27、done cd done,12.5 循环语句,2)while循环 while do done结构 while循环结构,每次先判断循环条件,为真则执行一次循环体(重复执行部分) ,轮到下次。否则结束循环(整体结构)。 格式: while condition do 命令组 done,12.5 循环语句,3)until循环 untildodone until循环和while循环类似,所不同的是until循环是循环终止条件。为假,才做(重复执行部分)循环体的执行。 格式: until condition do 命令组 done 如果第一次执行时,循环条件condition就为真,那循环体将得不到执行。
28、同时还要注意,必须在程序中设置条件condition为真的因素,否则循环将一直进行下去,从而进入了死循环。,12.5 循环语句,例:编写shell程序一次性创建若干个新文件,如file1, file2, file3. . . . . . file10。需要了解两个相关命令,touch 命令,改变文件的访问和修改时间 格式: touch optiontime filename,option -a 只修改文件的访问时间 -m 只修改文件的修改时间 当指定文件filename不存在,则创建一个具有默认权限和当前时间的新文件,time格式MMDDHHMM,expr 命令,对shell变量进行算术运算的
29、操作,因为shell变量的值都是字符型,进行算术运算必须使用expr命令,其带有三个参数运算符两边要有空格。 涉及算术运算+、-、*、/和%运算。,12.5 循环语句,shell中错误的算术运算: #count=9 #count=$count+11 #echo count,系统将显示:9+11,shell中正确的算术运算: #count = 9 #count=expr $count+11 #echo count,系统将显示:20,# genfiles.sh编程实现 NUMBER = 1 While test $NUMBER lt 11 do touch file$NUMBER NUMBER =
30、 expr $NUMBER + 1 done,12.6 Shell程序调试,shell程序是一种解释性语言,它的执行是逐行进行的,程序中是否有语法错误,不执行到那一行系统是无法知道的。C,pascal等高级语言是有编译过程的,程序中的语法错误在编译阶段就能检测出来,因此比shell更容易调试 shell程序通常有三种调试方法:,1)交互式调试 shell程序中使用的命令都能在命令行中运行,所以对于一些不很熟悉的命令和语法可以先用命令进行验证,然后再编写到shell程序中,这种调试方法称为交互式调试,也是最简单的一种调试方法。,12.6 Shell程序调试,2)在编辑过程中不断调试执行所编辑的s
31、hell程序 在UNIX系统中可以打开多个工作窗口。我们可以在一个窗口中用vi等编辑器进行编辑,然后在另一个连接窗口中执行该shell程序,这样可以随时观察到已经编写的部分是否正确。最终完成这个shell程序的编写。,3)用shell程序提供的跟踪功能进行调试 shell程序可以使用 -v -x 选项对shell程序进行跟踪 -v:当读入shell输入行时把它们显示出来,完成详细跟踪。Shell程序在完成这段程序执行时首先逐行读入执行的命令,并在标准输出上显示该命令要执行的实际内容,然后执行该命令。如果没有语法错误,执行将一直进行下去直到完成shell的执行。 -x:执行命令前先把命令和它们的
32、参数显示出来,12.6 Shell程序调试,假设有这么一个简单的shell,叫test1.sh date echo $PATH 我们用-v参数来调试, 执行sh -v test1.sh那么输出就应该是: date Mon Sep 8 9:55:01 Linux9 2003 echo $PATH /usr/bin:/usr/ucb/bin:/home/user1 shell在执行date前先显示该命令然后显示date的执行结果,接着显示echo $PATH以及它的执行结果。,如果用-x参数来执行这个shell,执行 sh -x test1.sh则系统的输出将是: +date Mon Sep 8
33、9:55:01 Linux9 2003 +echo /usr/bin:/usr/ucb/bin:/home/user1 /usr/bin:/usr/ucb/bin:/home/user1 date这一行没有参数,所以只显示命令 echo这一行有参数$path,被直接替换成了参数的值。,12.6 Shell程序调试,在调试一个比较大的shell时,没有必要对整个shell程序都进行跟踪,可以只对其中较为集中关注的部分进行跟踪,这时可以通过 set v set +v或者set x set +x来把需要跟踪的部分包含进来。,1.使用for循环语句编写Bshell程序,完成显示用户注册目录下a_sub
34、, b_sub子目录下的所有C程序源文件和目标文件的列表,12.7 Shell编程示例,# showCfile.sh if test -d $HOME/a_sub then echo - the .c and .obj files in $HOME/a_sub: - for filename in ls $HOME/a_sub do case $filename in *.c) echo $filename; *.obj) echo $filename; esac done else echo $HOME/a_sub does not exist! fi,12.7 Shell编程示例,if t
35、est -d $HOME/b_sub then echo - the .c and .obj files in $HOME/b_sub: - for filename in ls $HOME/b_sub do case $filename in *.c) echo “$filename is a C source file!”; *.obj) echo “$filename is an Object file!”; esac done else echo $HOME/b_sub does not exist! fi,12.7 Shell编程示例,2.连续输入若干个名字到文件s
36、中保留 read 当Bsh遇到一个read语句时,在标准输入文件中读取数据直到一个换行符。此时Shell在解释输入行时,不进行文件名或变量的替换,只是简单地删除多余的空格。然后Shell将输入行的第一个字的内容给变量1,第二个给变量2,直到所有变量都赋上值或是输入行为空。若输入行中字的个数超过变量个数,Shell将把输入行中剩余的所有字的内容都赋给最后一个变量。当变量个数多于输入行字的个数时候,多于的变量将赋一个空值。输入行的每一个字是由空格分隔的一个字母和数字组成的字符串。可以通过重定向的方式从文件中读字符串。,ans=yes until test $ans = no do echo Ent
37、er a name read name echo $name s echo Continue? echo Enter yes or no read ans done,12.7 Shell编程示例,while test -r abc.txt do echo file abc.txt has not been deleted !“ sleep 10 done echo file abc.txt has beed deleted !,3. 持续检测文件abc.txt是否存在,12.7 Shell编程示例,count=0 while read LINE do count=expr $
38、count + 1 done file echo $count,相当于 cat file | wc -l,统计文件file的行数。注:read 读入一整行存入LINE中的命令,循环结构重定向其输入。,12.7 Shell编程示例,5. 编写shell程序files.sh实现如下功能:从命令行输入1到3个文件名,如果只输入一个文件名,则从键盘录入信息,保存到该文件中;如果输入两个文件名,则先显示两个文件的内容,再将文件1的内容追加到文件2的末尾;如果输入3个文件名,则将文件1和文件2的内容合并覆盖到文件3上。,case $# in 1) cat $1; 2) cat $2; 3) cat $1
39、$2 $3; *) echo To many param esac,if test $# -eq 1 then cat$1 elif $#=2 then cat $2 elif $#=3 then cat $1 $2 $3 else echo error fi,12.7 Shell编程示例,6.为了便于系统管理员对磁盘分配的管理,请编写一段shell程序,当文件系统/home的占用空间量改变时,给出相应的信息提示。要求/home占用量在系统磁盘中为: 1)小于50%时,提示“用户系统文件磁盘使用负荷量小”。 2)大于50%,小于90%时,提示“用户文件系统磁盘使用负荷量正常” 3)大于90%时
40、,提示“用户文件系统磁盘使用负荷量偏大”。,12.7 Shell编程示例,bc 一个简单的计算器。bc是一个支持交互的表达式计算的语言,其格式类似于C语言 输入bc,回车,就进入bc的命令行,输入一个C格式的计算式 1333,回车得到结果100 命令行 echo 1+33*3 | bc 也能计算出1333100。 scale n 计算的精度 du 显示文件或目录所用的磁盘空间(另外观察df) -s 只显示设定文件目录的空间总量 -r 如果文件不能读取,则显示出提示信息 -a 可以接收多个文件,并一一显示所占的磁盘空间,rootredhat# df -k Filesystem 1k-blocks
41、 Used Available Use% Mounted on /dev/hda2 5542308 1147592 4113180 22% / none 256652 0 256652 0% /dev/shm rootredhat#,命令 df,功能:报告磁盘空间使用情况, 及空闲的空间等 格式: df option resource 注:resource 表示选定的系统资源。选项option 说明,,-k:以k字节为单位-m:以m字节为单位 -T:显示文件系统类型-h:以便于理解的方式显示大小,文件系统,df Th,Filesystem Type Size Used Avail Use% M
42、ounted on /dev/hda2 ext3 5.3G 1.1G 3.9G 22% / none tmpfs 251M 0 250M 0% /dev/shm rootredhat#,文件系统类型,linux常用的类型有ext2,ext3等,参考windows的ntfs,fat32等,虚拟内存文件系统,该文件系统大小,以k为单位计算,已用空间,可用空间,已用空间百分率,文件系统mount点,命令 du,功能:报告文件系统的可用空间,即任何目录(可包含子目录)或(其中)文件使用的空间情况。 格式: du option 文件名 选项option 说明: -a:全部,每个目录和文件的情况 -s:总
43、计,指明目录的总计情况-r:报告,不能打开文件的原因,命令:tail 整数cb 文件名 给出文件尾部指定行数(或字符数或块数)内容。命令head类似。,12.7 Shell编程示例,echo echo - Disk Usage Condition - used_disk=du -s /home | cut -f1 echo Used Blocks: $used_disk free_disk=df | head 2 |tail -1 | tr -s | cut -f4 -d echo Free Blocks: $free_disk total_disk=expr $used_disk + $fr
44、ee_disk echo total blocks:$total_disk echo echo - disk usage ratio -,12.7 Shell编程示例,#计算出磁盘的利用率 ratio=echo scale=6; $used_disk*100/$total_disk | bc echo -e usage ratio: $ratio% if test expr $ratio 90 then echo 用户文件系统磁盘使用负荷偏大 else echo 用户文件系统磁盘使用负荷正常 fi echo,12.7 Shell编程示例,7. 编写一个shell程序:根据从键盘输入的学生成绩,显示相应的成绩标准。,echo -e Please enter the score: while read SCORE do case $SCORE in ?|1-5? ) echo Failed! echo Please enter the next score:; 6?) echo Pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年巧克力粉末香精项目可行性研究报告(市场调查与数据分析)
- 援外医疗咨询服务协议
- 上海市松江区2026年八年级上学期期中质量监测物理试题附答案
- 5-Methyl-1-1-3-1-terphenyl-4-4-dicarboxylic-acid-生命科学试剂-MCE
- 2026年政务服务平台行业报告及用户需求分析
- 2026年电子商务渠道整合与行业品牌竞争分析报告
- 2026年跨境电商行业发展趋势与人才需求分析报告
- 2026年新能源汽车行业SOP标准化流程分析报告
- 2026年畜禽肉、油脂及食用杂碎行业管理系统创新报告
- 2026年高温蠕变试验机行业创新成果解读报告
- 2027年高考地理复习:综合题 答题方向+答题模版汇编
- 2026年国家工作人员学法用法考试题库及答案
- 测绘人员保密协议的范本6篇
- 2025年控告申诉检察业务竞赛真题及答案解析
- 化工运行制冷过程工程分析培训课件
- 腰椎骨折压缩性护理查房
- 数据资产价值评估指南及实践案例集
- AI在土木建筑中的应用
- 2026国新数据有限责任公司招聘4人笔试参考题库及答案解析
- 2026年华电集团招聘考试专业知识题库
- 浙商银行笔试测评题库
评论
0/150
提交评论