博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash脚本case与函数
阅读量:6291 次
发布时间:2019-06-22

本文共 1155 字,大约阅读时间需要 3 分钟。

case语句支持的模式

a|b:a或者b*:匹配任意长度的任意字符?:匹配任意单个字符[-]:范围匹配

case语法格式

case 表达式 in  模式1) 条件1 ;; 模式2) 条件2 ;; 模式n) 条件n ;; *) 剩余条件 ;; esac

bash脚本函数

函数:function 实现可被调用模块两种返回值:    1.正常返回值    函数中的打印语句,如echo或print    最后一句执行成功    2.执行状态返回值    取决于函数中执行的最后一条语句    自定义: return N

函数可以接受位置参数:

$1,$#,$0,$*,$@,$?如果想把脚本的全部位置参数,统统传递给脚本中函数使用,怎么办?    使用$*传递

函数作用域

变量作用域:local==declare -i    函数体可以调用函数体 那么函数体里声明变量    先内层函数体变量 在外层函数体变量 在主程序变量  在bash内置环境变量  如果没有不会报错 则为空显示0    在函数中使用了在主程序中声明的变量:重新赋值会影响主程序中的变量    如果不期望函数与主程序中的变量冲突,函数中使用变量都用local装饰;即使用局部变量    在函数中使用了序中在主程没有声明的变量:在函数执行结束后即被撤销,无论是否使用local装饰符

案例

[root@mm ~]#bash a.shh10xy20[root@mm ~]#cat a.shh#!/bin/bashdeclare -i A=10built() {declare A=xyecho $A}show() {declare -i A=20(如果这行注释掉show函数块为10)echo $A}echo $A(主程序变量)   builtshow

函数语法

方法一FuncName(){函数体 }方法二function FuncName{函数体}

案例

写一个脚本,判定172.16.0.0网络内有哪些主机在线,在线的用绿色显示,不在线的用红色显示;要求,编程中使用函数;

图片描述

写一个脚本,完成如下功能(使用函数):1、提示用户输入一个可执行命令;2、获取这个命令所依赖的所有库文件(使用ldd命令);3、复制命令至/mnt/sysroot/对应的目录中解释:假设,如果复制的是cat命令,其可执行程序的路径是/bin/cat,那么就要将/bin/cat复制到/mnt/sysroot/bin/目录中,如果复制的是useradd命令,而useradd的可执行文件路径为/usr/sbin/useradd,那么就要将其复制到/mnt/sysroot/usr/sbin/目录中;4、复制各库文件至/mnt/sysroot/对应的目录中,其要求命令;

图片描述

转载地址:http://zwuta.baihongyu.com/

你可能感兴趣的文章
[Java入门笔记] Java语言基础(四):流程控制
查看>>
cubla sample-code
查看>>
ACM中出现RuntimeError的原因及可能的解决办法
查看>>
《sift算法详解》阅读笔记
查看>>
HTML5 Web Workers 简单例子
查看>>
谈谈Mono开发的一些想法 ^_^
查看>>
数据结构 第6章 图 单元小结
查看>>
extern "C"
查看>>
JAVA构造方法
查看>>
Java中的关键字
查看>>
基础算法 ---> 二分法
查看>>
Java内部类
查看>>
数据结构和算法:队列和栈
查看>>
用户登录保存数据实例(慕课笔记 使用SharedPreferences保存用户名)
查看>>
如何判断一条sql(update,delete)语句是否执行成功
查看>>
JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);
查看>>
【集训队作业2018】小Z的礼物
查看>>
ClientScriptManager与ScriptManager向客户端注册脚本的区别
查看>>
js和php中几种生成验证码的方式
查看>>
android UI进阶之仿iphone的tab效果1
查看>>