Download presentation
Presentation is loading. Please wait.
Published byΆλκηστις Μελετόπουλος Modified 6年之前
1
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
远程访问工具OpenSSH的用法 本章教学目标: 了解shell程序的基本结构 掌握bash常见控制语句语法 掌握shell程序的调试方法
2
Shell程序就是包含一系列的linux命令和控制语句而已!!
第8章:bash脚本编程——Hello World 最简单的shell程序就是不包含一条语句无意义 myhello程序只包含如下一条代码: echo “Hello World” Shell程序就是包含一系列的linux命令和控制语句而已!! C/S模式 编程语言需要编译和链接速度快、语法复杂C/C++/Java/C# 脚本语言不用编译、解析执行速度慢、语法简单bash/php /perl/python/Javascript/asp/ActionScript/…. 计算机语言
3
第8章:bash脚本编程——程序结构 Shell程序结构 # more proc.bash #! /bin/bash cd /tmp
C/S模式 # more proc.bash #! /bin/bash cd /tmp rm -rf 1*a.txt .u* echo “Well Done!”
4
第8章:bash脚本编程——变量 1、普通变量无类型、直接赋值引用:$i或${i}
2、数组变量一维的数组变量名=(元素1 元素2 元素3 ……) Users=(Zsan Lisi “Wang er” Mazi)echo ${Users[0]} ,${Users[*]},${#Users[*]},${#Users[3]}Users[2]=wlm 新的数组变量名=(“${旧数组变量名[*]}”) 3、特殊变量bash自动定义和赋值,用户不能改$$:当前进程 号$?:前一个命令的退出状态$#:命令的参数个数$0:命令本 身$1~$n:命令参数$*:代表全部命令参数 最好时机操作演示
5
第8章:bash脚本编程——控制语句 1、顺序结构体一系列命令,从上到下执行
2、分支结构体根据条件改变执行的路径test 表达式[ 表达式 ]表达式为“真”则返回0,或者返回1 1、顺序结构体一系列命令,从上到下执行 case分支语句语法: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac if分支语句语法: If list; then list; [ elif list; then list; ]... [ else list; ] fi 最好时机操作演示
6
第8章:bash脚本编程——控制语句 3、循环结构体反复执行一系列语句
2、分支结构体根据条件改变执行的路径test 表达式[ 表达式 ]表达式为“真”则返回0,或者返回1 1、顺序结构体一系列命令,从上到下执行 select循环语句语法: select name [ in word ] ; do list ; done for循环语句语法: for name [ [ in [ word ... ] ] ; ] do list ; done (1) 或者: for (( expr1 ; expr2 ; expr3 )) ; do list ; done (2) if分支语句语法: If list; then list; [ elif list; then list; ]... [ else list; ] fi case分支语句语法: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac 循环控制语句: break 和 continue while循环语句语法: while list; do list; done #!/bin/bash PS3=”Please Select:” menus=”com|net|org|edu|quit” IFS=”|” select item in ${menus} do case ${item} in com) echo “Apply com domain”;; net) echo “Apply net domain”;; org) echo “Apply org domain”;; edu) echo “Apply edu domain”;; quit) break;; esac done for file in * do if [ ${file} = “.” –o ${file} = ”..” ] then continue fi [ ${file} = “123” ] && break cp -r ${file} ${file}.old done #!/bin/bash cat /etc/passwd | while read line do user=awk -F: ‘{print $1}’ <<<${line} echo “Account: ${user}” done for n in do echo -n “$n 次|” done total=1 for((i=1; i<10; i=i+1) ) do [ `expr $i % 2` -eq 0 ] && continue total=`expr ${total} \* $i` done echo ${total} for fil in *; do [ -f ${fil} ] && mv ${fil} ${fil}.old [ -d ${fil} ] && break done 最好时机操作演示
7
第8章:bash脚本编程——shell调试
bash -x file.bash …… set -v 被调试语句块 set +v for file in * do set -v if [ ${file} = “.” –o ${file} = ”..” ] then continue fi [ ${file} = “123” ] && break set +v cp -r ${file} ${file}.old done 最好时机操作演示
8
第8章:bash脚本编程——总结 shell程序的基本结构 bash常见控制语句语法 shell程序的调试方法
9
第8章:bash脚本编程——作业 P103
Similar presentations