第十章shell编程1.doc
《第十章shell编程1.doc》由会员分享,可在线阅读,更多相关《第十章shell编程1.doc(10页珍藏版)》请在三一办公上搜索。
1、10.Shell编程1.Shell编程语法一个简单的shell程序:$ cat example #!/bin/sh #This is to show what a example looks like. echo Our first example echo # This inserts an empty line in output. echo We are currently in the following directory. /bin/pwd echo echo This directory contains the following files /bin/ls shell结构:
2、1. #!指定执行脚本的shell 2. #注释行 3. 命令和控制结构 创建shell程序的步骤: 1.创建一个包含命令和控制结构的文件。 2.修改这个文件的权限使它可以执行。使用chmod u+x 3.执行./example(也可以使用“sh x example”执行)Shell变量:变量是shell传递数据的一种方法,用来代表每个取值的符号名。 Shell有两类变量:临时变量和永久变量。临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。如 $PATH $LANG
3、$SHELL $PS1 用户自定义变量:用户定义的变量由字母或下划线开头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。 在使用变量值时,要在变量名前加上前缀“$”。设置和使用变量:设置变量:习惯上用大写字母来命名变量。变量名只能以字母表中的字符开头,不能用数字。 变量赋值:赋值号“=”两边应没有空格。定义时赋值,如NUM=1将一个命令的执行结果赋给变量,如:TIME=date将一个变量赋给另一个变量,如:A =$B使用echo命令查看变量值。例如:echo $A 例子:NUM=100 echo $NUM TIME=date echo $ TIME TIME=dat
4、e +% F echo $ TIME列出所有的变量:# set 包含多个字的变量:$NAME=Mike Ron 运行时出错,应改为:$NAME=“Mike Ron” 或 $NAME=Mike Ron 单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。# ABC=$NAME Junior# echo $ABC $NAME Junior 删除变量:# unset NAME 位置变量和特殊变量:位置变量:Shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作为参数。由出现在命令行上的位置确定的参数称为位置参数。 ls -l file1 file2 file3 $0 这个
5、程序的文件名 ls -l $n 这个程序的第n个参数值,n=1-9 特殊变量:$* 这个程序的所有参数 $# 这个程序的参数个数 $ 这个程序的PID $! 执行上一个后台命令的PID $? 执行上一个命令的返回值 #!/bin/sh# Usage: sh special file01 file02echo $# is: $#echo $* is: $*echo $? is: $?echo $ is: $ echo $! is: $! 2.Shell脚本调试Shell命令:read命令:从键盘读入数据,赋给变量,如:read USERNAME #! /bin/sh read first sec
6、ond third echo the first parameter is $first echo the second parameter is $second” echo the third parameter is $third expr 命令:对整数型变量进行算术运算expr 3 + 5 expr 3 - 5 expr 8 / 3 expr 8 * 10 复杂的expr命令复杂的运算:expr expr 5 + 7/$var4 将运算结果赋予变量:var4= expr $var1 / $var2 #!/bin/sh a=10 b=20 c=30 value1=expr $a + $b
7、+ $c echo The value of value1 is $value1 value2=expr $c / $b echo The value of value2 is $value2 value3=expr $c * $b echo The value of value3 is $value3 value4=expr $a + $c / $b echo The value of value4 is $value4 变量测试语句:用于测试变量是否相等、 是否为空、文件类型等。 格式:test 测试条件 测试范围:整数、字符串、文件 字符串测试:test str1=str2 测试字符串是
8、否相等 test str1!=str2 测试字符串是否不相等 test str1 测试字符串是否不为空test -n str1 测试字符串是否不为空test -z str1 测试字符串是否为空整数测试:test int1 -eq int2 测试整数是否相等test int1 -ge int2 测试int1是否=int2test int1 -gt int2 测试int1是否int2test int1 -le int2 测试int1是否=int2test int1 -lt int2 测试int1是否 /tmp/temp.pidkillid=cat /tmp/temp.pidfor PID in $
9、killiddo/bin/kill -9 $PID 2 /dev/nulldoneawk命令:awk -F 域分隔符命令检测系统中UID为0的用户:awk -F: $3=0 print $1 /etc/passwd检测系统中密码为空的用户:awk -F: length($2)=0 print $1 /etc/shadow ps -le | grep sshd | awk print $4awk命令例子:#!/bin/sh# display user info/bin/echo Please input the usernameread username/bin/grep $username /
10、etc/passwd /dev/null 2 /dev/nullif $? -eq 0 then/bin/echo the username is $usernameelse /bin/echo the username $username does not exist exit 1fi/bin/echo# list /etc/passwd infouserinfo=/bin/grep $username:x /etc/passwduserid=/bin/echo $userinfo | /bin/awk -F : print $3groupid=/bin/echo $userinfo | /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 shell 编程 doc

链接地址:https://www.31ppt.com/p-2388273.html