文档详情

Linux_Shell编程基础.ppt

发布:2016-09-12约2.99千字共23页下载文档
文本预览下载声明
Linux Shell编程基础 授课:杨建新 脚本编程 传统的DOS批处理文件(*.bat) Windows脚本: vbscript(*.vbs) Javascript(*.js) Unix Shell脚本 指定脚本执行所使用的shell 如果Script的第一个非空字符不是#,则它会使用Bourne?Shell。 如果Script的第一个非空字符是#时,但不以#!开头时,则它会使用C?Shell。 如果Script以“#!”开头,则“#!”后面所写的就是所使用的Shell,而且要将整个路径名称指出来 * 建议使用第3种方法 执行shell脚本程序的方法 shellname scriptname . scriptname 在shell中使用变量 Bourne?Shell的变数类型只有字串变量,所以要使用数值运算则必须靠外部命令达到目的 变量主要包括用户变量和系统变量两类 为变量赋值: var=string 取用变量时则在变量名称前加上一“$”?号 如果需要处理数值运算,可以使用expr命令 expr用法 expr一般用于整数值计算,常用于程序计数器,实例如下: expr 10 + 10 expr 10 \* 10 expr 30 / 10 常用系统变量 $HOME?使用者自己的目录 $PATH?执行命令时所搜寻的目录 $TZ?时区 $MAILCHECK?每隔多少秒检查是否有新的信件 $PS1?在命令列时的提示号 $PS2?当命令尚未打完时,Shell?要求再输入时的提示号? $MANPATH?man?指令的搜寻路径? 实例1 #!/bin/sh name=yang echo $name echo $PATH PATH=$PATH:$HOME/bin echo $PATH i=0 i=`expr $i + 3` echo $i 使用特殊变量 $0?这个程序的执行名字? $n?这个程序的第n个参数值,n=1..9? $*?这个程序的所有参数? $#?这个程序的参数个数? $$?这个程序的PID? $!?执行上一个背景指令的PID? $??执行上一个指令的返回值? 使用shift?命令可以将参数后移 实例2:testvar #!/bin/sh echo?Filename:?$0? echo?Arguments:?$* echo?Number?of?args.:?$#? echo?2nd?arg.:?$2? shift? echo?Number?of?args.:?$#? echo?2nd?arg.:?$2? set?hello,?world? echo?Arguments:?$*? echo?2nd?arg.:?$2? 执行sh testvar this is my shell script 获取用户输入 使用read命令可以获取用户的输入并赋予变量 read?var1?var2..... 实例3 #!/bin/sh echo Please input your name: read name echo Your name is:$name 条件测试 测试文件状态 -d:目录 -s:文件非空 -f:正规文件 -w:可写 -L:符号链接 -u:文件有suid位 -r:可读 -x:可执行 条件测试 比较表达式 -eq = 字符串: -ne != -gt -n :非空串 -lt -z :空串 -le = -ge = 条件测试 逻辑操作 -a, -o, || ! 条件测试 # [ -f /etc/passwd -a -f /etc/inittab ] # echo $? 0 # [ -x /etc/passwd -o -x /bin/sh ] # echo $? 0 流程控制:分支结构 if...then...else…fi if...then...elif...then…fi case var in string1 ) ?command... ?;; *) command... ;; esac 实例4 #!/bin/sh until echo List Directory..........1 echo Change Directory....2 echo Edit File...........…….3 echo Remove File.............4 echo Exit Menu...........…..5 echo Please input your choice: read choice test $choice = 5 do case $choice in
显示全部
相似文档