Linuxshell脚本之菜单以及函数

2023-05-16

目录

一、菜单

1.查看菜单格式

2.简单菜单小脚本 

二、函数

1.作用

2.基本格式

3.查看函数

4.删除函数

5. 函数的返回值

6.函数的传参数  

7. 函数变量的作用范围

8.递归

三、数组

1.定义数组格式

2. 数组类型包括

四、 总结


一、菜单

1.查看菜单格式

[root@localhost ~]#  help select

2.简单菜单小脚本 

[root@localhost ~]# vimcaidan.sh

脚本运行结果 

二、函数

1.作用

(1)语句块定义成函数约等于别名

(2)定义函数,再引用函数

2.基本格式

(1)function 函数名 {                      【这个不怎么用】

         命令序列

         }

(2)函数名(){                             【这个形式比较常用】

         命令序列

         }

3.查看函数

[root@localhost ~]# declare -F

 

4.删除函数

unset +函数名

5. 函数的返回值

(1)return

         return表示退出函数并返回一个退出值,脚本中可以用$?变量表示该值

(2)使用原则

  1. 函数一结束就去返回值,应为$?变量只返回执行的最后一条命令的退出返回码

  2. 退出码必须是0-255,超出的值将为除以256取余

(3)使用案例

6.函数的传参数  

7. 函数变量的作用范围

(1)作用范围

         函数在shell脚本中仅在当前的shell环境中有效

         shell脚本中的变量默认全局有效

(2)将变量限定在函数内部使用local命令

8.递归

(1)含义

         函数调用自己本身的函数

(2)阶乘

5!=5*4*3*2*1

三、数组

1.定义数组格式

  1. 数组名=(value0 value1 value2 value3 ......)

  2. 数组名=([0]=value [1]=value1 [2]=value2 ....)

  3. 列表名="value0 value1 value2 value3 ...... "

    数组名=($列表名)

  4. 数组名[0]="value1"

    数组名[1]="value2"

    2数组名[2]="value3"

2. 数组类型包括

(1)数值型

[root@localhost ~]# a=(1 2 3 4 5)
查看下标                0 1 2 3 4
[root@localhost ~]# echo ${!a[*]}
0 1 2 3 4

[root@localhost ~]# echo ${a[0]}
1
输出第一一个数值  注意是从0开始计算

(2)字符型

列出所有参数
[root@localhost ~]# echo ${a[*]}          *代表所有参数
1 2 3 4 5
[root@localhost ~]# echo ${a[@]}        @同*
1 2 3 4 5
共有多少个位置
[root@localhost ~]# echo ${#a[@]}      前面加#数组的长度
5
[root@localhost ~]# echo ${#a[*]}    
5

(3)冒泡排序

四、 总结

本章主要讲了菜单,脚本和数组,大家可以结合函数以及菜单写个脚本菜单,方便大家以后工作使用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linuxshell脚本之菜单以及函数 的相关文章

  • Linuxshell脚本之菜单以及函数

    目录 一 菜单 1 查看菜单格式 2 简单菜单小脚本 二 函数 1 作用 2 基本格式 3 查看函数 4 删除函数 5 函数的返回值 6 函数的传参数 7 函数变量的作用范围 8 递归 三 数组 1 定义数组格式 2 数组类型包括 四 总结
  • linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 一 Linux 下使用 nohup Unix Linux下一般比如想让某个程序在后台运行 很多都是使用 在程序结尾来让程序自动运行 比如我们要
  • SHELL学习笔记----IF条件判断,判断条件

    前言 无论什么编程语言都离不开条件判断 SHELL也不例外 if list then do something here elif list then do another thing here else do something else
  • Linux 之 shell 比较运算符

    运算符 描述 示例 文件比较运算符 e filename 如果 filename 存在 则为真 e var log syslog d filename 如果 filename 为目录 则为真 d tmp mydir f filename 如
  • wget命令详解,断点续传

    1 支持断点下传功能 2 同时支持FTP和HTTP下载方式 3 支持代理服务器 4 设置方便简单 5 程序小 完全免费 wget虽然功能强大 但是使用起来还是比较简单的 基本的语法是 wget 参数列表 URL 下面就结合具体的例子来说明一
  • 磁盘性能指标—IOPS、吞吐量及测试

    磁盘性能指标 IOPS 吞吐量及测试 IOPS 吞吐量 磁盘服务时间 最大IOPS的理论计算方法 IOPS Input Output Per Second 即每秒的输入输出量 或读写次数 是衡量磁盘性能的主要指标之一 IOPS是指单位时间内
  • Linux expect spawn用法

    背景 开发中 经常会有一些任务需要人机交互 比如登录到某台server上 远程拷贝其上的软件 并分发到其他sever上 传统的操作方式 会产生开发人员与计算机的交互 如等待用户输入密码之类的操作会打断自动化流程的实现 解决方案 使用expe
  • getopt和getopt_long函数

    平时在写程序时常常需要对命令行参数进行处理 当命令行参数个数较多时 如果按照顺序一个一个定义参数含义很容易造成混乱 而且如果程序只按顺序处理参数的话 一些 可选参数 的功能将很难实现 在Linux中 我们可以使用getopt getopt
  • getopt使用样本/模板

    this is the sample of use of getopt funtion include
  • shell函数【参数传递及输入输出】&内置函数

    Linux shell脚本基础3 shell函数 参数传递及输入输出 内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND OR 3 内置命令补充 3 函数定义 函数定义 在Shell 中 函数就是一组命令
  • make all、make clean、make install 等命令的来源

    在命令行输入make命令后 会查找当前目录下的Makefile文件来执行 一切都是自动运行的 有时候Makefile中有多个程序需要编译 这时可以使用 make all 来编译所有的程序 当然也可以使用 make 程序名 来单独编译某一个文
  • Linux查看文件和日志的常用命令

    Linux查看文件和日志的常用命令 当项目部署和运行起来后 会产生很多的运行日志 日志的内容是程序里定义的重要输出信息 还有程序出错的报错信息 查看日志文件大部分是去日志中获取一些数据 确认某些信息 还有定位问题时查看报错信息 查看文件是查
  • 设置Linux服务器登录密码过期时长

    设置Linux服务器登录密码过期时长 登录服务器时 提示登录密码过期 必须修改密码重新登录 You are required to change your password immediately password aged You mus
  • Linux Shell函数返回值

    Shell函数返回值 一般有3种方式 return argv echo 1 return 语句 shell函数的返回值 可以和其他语言的返回值一样 通过return语句返回 示例 bin bash function mytest echo
  • shell 脚本学习之一 ------let,echo,变量

    首先看到好多以这样开头的 bin bash 这个是告诉系统 解释此脚本文件的Shell程序 这个是注释行 当行有效 脚本程序一般用 xx sh 文件表示 这样一样就可以看出文件的属性 当然也可以不这样 一个脚本程序写完后 如果要执行它 则必
  • 设置vim 永久显示行号

    在linux环境下 vim是常用的代码查看和编辑工具 在程序编译出错时 一般会提示出错的行号 但是用vim打开的代码确不显示行号 错误语句的定位非常不便 那么怎样才能让vim显示代码的行号呢 1 临时显示行号 如果只是临时显示vim的行号
  • shell提取字符串中的数字保存到变量中

    1 提取数字到变量 temp echo helloworld20180719 tr cd 0 9 echo temp 输出 20180719 2 重定向到文件 echo helloworld20180719 tr cd 0 9 gt mid
  • linux centos使用rz、sz命令上传下载文件

    一般情况下 我们会使用终端软件 如 XShell SecureCRT 或 FinalShell 来连接远程服务器后 使用 rz 命令上传本地文件到远程服务器 再解压发版上线 一 安转使用 系统 Linux CentOS 7 安装 rz 和
  • brew 安装使用 mysql、redis、mongodb

    在 Mac 生态中 brew 真是个万能神器 今天就来介绍一下怎么使用 brew 安装 mysql redis mongodb 以及如何使用 brew 启动 关闭 重启这些服务 前言 brew 常用命令 查看brew的版本 brew v 更
  • linux centos使用rz、sz命令上传下载文件

    一般情况下 我们会使用终端软件 如 XShell SecureCRT 或 FinalShell 来连接远程服务器后 使用 rz 命令上传本地文件到远程服务器 再解压发版上线 一 安转使用 系统 Linux CentOS 7 安装 rz 和

随机推荐

  • L1-051 打折(c++)

    去商场淘打折商品时 xff0c 计算打折以后的价钱是件颇费脑子的事情 例如原价 xffe5 988 xff0c 标明打 7 折 xff0c 则折扣价应该是 xffe5 988 x 70 61 xffe5 691 60 本题就请你写个程序替客
  • STM32之按键作为外部中断控制led灯

    基础概念 STM32F4 的每个 IO 都可以作为外部中断的中断输入口 xff0c 这点也是 STM32F4 的强大之处 STM32F407 的中断控制器支持 22 个外部 中断 事件请求 每个中断设有状态位 xff0c 每个中断 事件都有
  • STM32在HARDWARE文件下添加xx.c文件,新建xx.c和xx.h文件

    步骤如下 xff1a 新建text 在HARDWARE文件夹下新建time文件夹放 c 和 h文件 text文件下用Ctrl 43 S保存text文件到刚刚建立的time文件夹下 xff0c 命名time c KEIL5里面右键HARDWA
  • Word占用CPU很高?如何解决?已完结

    事件原因 xff1a 这几天在写近代史的论文 xff0c 发现一打开文档 xff0c 电脑的风扇就嗡嗡嗡转个不停 xff0c 打开任务管理器一看 好家伙 xff01 xff01 xff01 这里说明一下 xff1a 我的电脑要是不联机的话
  • 手把手教你做stm32简易串口上位机(接收数据用)

    笔者的开发板是正点原子的stm32F103zet6迷你板 串口的使用是USART1 单片机相关串口的程序就不讲解 xff0c 编写上位机程序是使用C 43 43 语言 xff0c 在VS2017里面编写 xff0c 下面进入正题 一 相关知
  • K66芯片解锁/J-link报错的解决思路

    错误呈现 xff1a 错误描述 xff1a Protection bytes in flash at add 0x400 0x40F indicate that readout protection is set For debugger
  • mpv官方文档部分快捷键

    mpv github官方快捷键文档 xff1a https github com mpv player mpv blob master etc input conf 以下是来自我个人的翻译 常规 q xff1a 退出mpv且不记住播放进度
  • STM32报错解决:..\OBJ\LED.axf: error: L6002U: Could not open file ..\obj\main.o: No such file/

    出现这个问题的原因主要有MDK的安装路径为中文 xff0c 或电脑的用户名为中文 xff0c 解决方法见如下的链接 xff1a 常规的原因 也有出现语法错误导致的 xff0c 如下面这位博主的情况 语法错误 而我遇到这个问题的原因比较难以确
  • Numpy二维数组遍历与二维数组切片后遍历效率比较

    在python numpy使用中 xff0c 可以用双层 for循环对数组元素进行访问 xff0c 也可以切片成每一行后进行一维数组的遍历 代码如下 xff1a span class token keyword import span nu
  • STM32外部中断给AB相编码器计数异常处理

    现象 楼主想实现的功能是使用编码器来实现电机旋转固定的圈数 xff0c 做一个位置闭环 在电机排线 xff08 电源线 43 编码器线 xff09 为30cm时 xff0c 计数正常 xff0c 当线长到40cm时会出现无法到达指定的位置
  • LINUX绑定usb设备名称

    LINUX绑定usb设备名称 起因 xff1a USB转TTL串口通信模块 xff0c USB摄像头模块连接linux电脑时 xff0c 其端口号一般是ttyUSB0 ttyUSB1 ttyUSB2 或video0 video1 video
  • KEIL中查看程序的存储空间的大小

    Program Size Code 61 86496 RO data 61 9064 RW data 61 1452 ZI data 61 16116 Code是代码占用的空间 xff0c RO data是 Read Only 只读常量的大
  • Mysql安装教程5.7(理论通用)

    1 首先在官网下载 mysql 地址 2 下载完成解压 默认在 C Program Files MYsQL 我下面统一使用该地址 想安装到 D 盘就提前建个文件夹命名为 MYSQL 解压进去 3 在MYSQL安装目录下 xff08 C Pr
  • Debia安装和配置dns服务

    首先下载dns服务 接着查看本机的ip地址 xff08 本机为172 16 100 201 之后统一为此ip xff09 设置本地的主服务器地址 xff0c 本机即是主服务器 xff0c 如在其他设备上在这里将namserver修改成其他设
  • Debian安装和配置chrony服务器

    首先准备两台或者两台以上debain进行配置 服务器 apt install chhrony nano etc chrony chhrony conf 添加以下内容 server 172 16 100 201 iburst 此处是chron
  • 锂电池充电(TP4056A芯片)电路分享

    描述 xff08 资料来源文档 特点 封装 引脚功能 应用电路分享 检测电池温度 xff0c 电池温度异常指示和充电状态指示应用 适合需要充电状态指示 xff0c 但不监测温度 xff08 左边 xff09 xff0c 既不需要充电状态提示
  • 利用snapper实现archlinux的系统还原

    首先 xff0c 安装snapper和btrfs progs pacman S snapper btrfs progs 创建配置文件 snapper c cfg home create config f btrfs home snapper
  • --secure-file-priv为Null且修改无效问题

    试过很多方法 xff0c 发现修改无效的根本原因是我的my ini在data文件夹中 xff0c 应该放在有效文件夹里 在命令行输入 mysql help 发现有这样一行 它的意思是c盘或者D Program Files MySQL mys
  • 在python利用代码进行简单的数学运算

    在这里我们会简单说一下在python中用代码进行数学运算 python的运算顺序 和数学里是一样的 xff1a 加减乘除 xff0c 在键盘上加减符号都有 xff0c 而乘除我们用星号 和正斜杠 表示 xff0c 次方用 表示 比如2的三次
  • Linuxshell脚本之菜单以及函数

    目录 一 菜单 1 查看菜单格式 2 简单菜单小脚本 二 函数 1 作用 2 基本格式 3 查看函数 4 删除函数 5 函数的返回值 6 函数的传参数 7 函数变量的作用范围 8 递归 三 数组 1 定义数组格式 2 数组类型包括 四 总结