- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 shell编程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结构:
1. #!指定执行脚本的shell
2. #注释行
3. 命令和控制结构
创建shell程序的步骤:
创建一个包含命令和控制结构的文件。 修改这个文件的权限使它可以执行。使用chmod u+x
执行./example也可以使用“sh –x example”执行
Shell变量变量是shell传递数据的一种方法,用来代表每个取值的符号名。
Shell有两类变量:临时变量和永久变量。临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括:用户自定义变量、位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。如 $PATH $LANG $SHELL $PS1
用户自定义变量用户定义的变量由字母或下划线开头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。 在使用变量值时,要在变量名前加上前缀“$”。
设置和使用变量
设置变量:习惯上用大写字母来命名变量。变量名只能以字母表中的字符开头,不能用数字。
变量赋值:赋值号“=”两边应没有空格。定义时赋值,如NUM=1将一个命令的执行结果赋给变量,如:TIME=`date将一个变量赋给另一个变量,如:A =$B使用echo命令查看变量值。例如:echo $A
例子NUM=100 echo $NUM TIME=`date` echo $ TIME TIME=`date +% 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 这个程序的文件名 ls -l $n 这个程序的第n个参数值,n=1-9
特殊变量
$* 这个程序的所有参数 $# 这个程序的参数个数 $$ 这个程序的PID
$! 执行上一个后台命令的PID $? 执行上一个命令的返回值 #!/bin/sh
# Usage: sh special file01 file02
echo $# is: $#
echo $* is: $*
echo $? is: $?
echo $$ is: $$
echo $! is: $!
2.Shell脚本调试Shell命令
read命令:从键盘读入数据,赋给变量如:read USERNAME
#! /bin/sh read first second 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 + $c`
echo The value of value1 is $value1
value2=`expr $c / $b`
echo The value of value2 is $value2
value3=`expr $c \* $b`
文档评论(0)