活动介绍

SHELL脚本常识.pdf

preview
需积分: 0 1 下载量 106 浏览量 更新于2011-10-30 收藏 1.48MB PDF 举报
### SHELL脚本常识知识点详解 #### 一、if条件语句 在Shell脚本编程中,`if`语句是非常基础且重要的控制结构之一,用于根据不同的条件执行不同的代码块。`if`语句的基本格式如下: ```bash if 条件表达式 then # 当条件为真时执行以下语句 命令列表 else # 为假时执行以下语句 命令列表 fi ``` 其中,“条件表达式”可以是逻辑表达式或比较表达式。当“条件表达式”的结果为真时,执行`then`后的命令列表;若为假,则执行`else`后的命令列表。 **示例:** ```bash if test -f "$1" then lpr $1 else if test -d "$1" then cd $1 lpr $1 else echo "$1 不是文件或目录" fi fi ``` 此示例中,`test -f "$1"`检查传入的第一个参数`$1`是否为文件。如果是,则将其发送到打印机(`lpr $1`);如果不是文件,则进一步检查是否为目录(`test -d "$1"`),如果是目录,则切换到该目录(`cd $1`)并将目录名称发送到打印机;如果既不是文件也不是目录,则输出错误消息。 此外,`if`语句还可以嵌套使用,形成更复杂的逻辑结构: ```bash if 条件表达式1 then if 条件表达式2 then 命令列表 else if 条件表达式3 then 命令列表 else 命令列表 fi fi else 命令列表 fi ``` #### 二、多重条件测试语句 `case` `case`语句是一种用于测试字符串是否与一系列模式匹配的控制结构。其基本格式如下: ```bash case 字串 in 模式1) 命令列表 ;; 模式2) 命令列表 ;; ... *) 命令列表 ;; esac ``` **示例:** ```bash case $1 in *.c) cc $1 ;; *.txt) lpr $1 ;; *) echo "未知的类型" ;; esac ``` 在此示例中,`case`语句检查传入的第一个参数`$1`的扩展名。如果扩展名为`.c`,则使用`cc`命令编译该文件;如果扩展名为`.txt`,则使用`lpr`命令打印文件;如果`$1`没有这两种扩展名,则输出“未知的类型”。 #### 三、循环控制 ##### 1. while 循环 `while`循环允许重复执行一组命令,直到某个条件不再满足。其基本格式如下: ```bash while 条件表达式 do 命令列表 done ``` **示例:** ```bash Sum=0 i=0 while true do i=$(($i + 1)) Sum=$(($Sum + $i)) if [ $i -eq 100 ] then break fi done echo $i $Sum ``` 这段代码计算从1累加到100的总和。`while true`表示无限循环,直到内部的`break`语句终止循环。每轮循环中,`i`自增1,并累加到`Sum`中,当`i`达到100时,通过`break`跳出循环。 `until`关键字的作用与`while`相反,只有当条件为假时才执行循环内的命令。例如,可以将上述示例中的`while true`替换为`until [ $i -eq 100 ]`。 ##### 2. for 循环 `for`循环用于遍历列表中的元素,其基本格式如下: ```bash for 变量 in 名字列表 do 命令列表 done ``` **示例:** ```bash for file in *.txt do lpr $file done ``` 此示例中,`for`循环遍历当前目录下所有`.txt`文件,并逐个将其发送到打印机。 通过这些基础的控制结构,可以构建出复杂且灵活的Shell脚本,实现自动化任务处理和系统管理。掌握这些知识点对于深入学习Linux系统管理和Shell脚本编程至关重要。
身份认证 购VIP最低享 7 折!
30元优惠券
conkang99
  • 粉丝: 0
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜