[Linux] Bash脚本多函数应该如何执行?使用eval提高脚本编写效率!

在工作过程中经常会编写一些测试脚本,有些脚本里有多个函数,要通过用户输入执行对应的函数,如这样:

图片

图片

这也太麻烦了吧

执行如下:

图片

这样在函数多的情况下需要写很多判断,效率低下。
我们可以使用eval命令来进行执行,如:

图片

执行效果与上面一致:

图片

但是这样会带来一个安全的问题,如果用户输入的是一条命令的话...

图片

图片

当然,如果脚本是自己用的就无所谓了!如果是给别人用的话,还得考虑解决这个问题!

我想到了一个最简单的方法,那就是加个自定前缀,比如我每个方法都加上了

function_字段,在执行的时候直接输入function_后面一串字符即可(但是这个要和别人协商好,写好readme)。

图片

修改后执行效果如下:

图片

输入其它如命令等参数:

图片

图片

PS:如果你们是按照代码行评绩效,建议不要这样操作~

今天的分享就到这里,我是运维少年,欢迎大家关注我的微信公众号~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227670.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之数据库及表操作

MySQL之数据库及表操作 文章目录 MySQL之数据库及表操作一、数据库的基本结构二、数据库的创建和删除三、数据表的结构定义和操作四、数据的插入五、主键和自增长属性1、什么是主键2、自增长属性 一、数据库的基本结构 数据库系统由数据库服务器为载体,拥有一个或者…

pymol使用

1.pymol使用小技巧8-选取配体周围氨基酸 select ligand,resn x[/code] PS: x为配体名字 color red, ligand[/code] select 5A, byres ligand around 5[/code] PS: 配体5埃范围内的残基 show sticks, 5A color yellow, …

区块链媒体:Web3.0时代的推广创新10爆款策略概览-华媒舍

随着Web3.0时代的到来,互联网推广正经历着一场创新的革命。在这个新的时代背景下,一系列全新的推广策略正在兴起,引领着市场的变革。本文将基于这一背景,为大家介绍Web3.0时代中的10大爆款推广策略概览。 1. 个性化推广 在Web3.0…

在 JavaScript 中导入和导出 Excel XLSX 文件:SpreadJS

在 JavaScript 中导入和导出 Excel XLSX 文件 2023 年 12 月 5 日 使用 MESCIUS 的 SpreadJS 将完整的 JavaScript 电子表格添加到您的企业应用程序中。 SpreadJS 是一个完整的企业 JavaScript 电子表格解决方案,用于创建财务报告和仪表板、预算和预测模型、科学、工…

移动app测试要不要做第三方软件测试?

移动app测试是指通过对移动应用进行全面的评估和验证,以确保其功能和性能符合设计要求,以提供给用户最好的体验。通常包括功能测试、界面测试、性能测试、兼容性测试等多个环节。由于现在越来越多的软件企业会选择将测试工作交由第三方软件测试进行&…

PHP 阿里云短信服务

目录 1、申请3个月免费短信 2、获取阿里云AccessKey ID 和 AccessKey Secret 3、php安装阿里云sdk 4、复制下面代码调用sdk替换自己key、运行该代码 1、申请3个月免费短信 2、获取阿里云AccessKey ID 和 AccessKey Secret 3、php安装阿里云sdk 开发文档短信服务_SDK中…

在linux上如何运用虚拟数据优化器VDO

本章主要介绍虚拟化数据优化器。 什么是虚拟数据优化器VDO 创建VDO设备以节约硬盘空间 16.1 了解什么是VDO VDO全称是Virtual Data Optimize(虚拟数据优化),主要是为了节省硬盘空间。 现在假设有两个文件file1和 file2,大小都是10G。file…

docker安装node及使用

文章目录 一、安装node二、创建node容器三、进入创建的容器如有启发,可点赞收藏哟~ 一、安装node 查看可用版本 docker search node安装最新版本 docker install node:latest二、创建node容器 docker run -itd --name node-test node–name node-test&#xff1…

HarmonyOS4.0从零开始的开发教程05 应用程序入口—UIAbility的使用

HarmonyOS(三)应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,…

视觉资料记录

1. 江南才尽,年少无知!_RK3399移植,(02)Cartographer源码无死角解析-免费,(01)ORB-SLAM2源码无死角解析-免费-CSDN博客江南才尽,年少无知!擅长RK3399移植,(02)Cartographer源码无死角解析-免费,(01)ORB-SLAM2源码无死角解析-免费,…

jira创建用例,与任务关联

项目用的jira,但之前的用例放在禅道上,或者归档于svn,都不是很好用,所以研究了下jira的用法 1、下载插件: synapseRT - Test management and QA in JIRA 完成后在tab会多出一个test 2、常用的功能 1、建立用例&#…

node.js和浏览器之间的区别

node.js是什么 Node.js是一种基于Chrome V8引擎的JavaScript运行环境,可以在服务器端运行JavaScript代码 Node.js 在浏览器之外运行 V8 JavaScript 引擎。 这使得 Node.js 非常高效。 浏览器如何运行js代码 nodejs运行环境 在浏览器中,大部分时间你所…

力扣题:字符的统计-12.6

力扣题-12.6 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:696. 计数二进制子串 解题思想:先统计连续的0和连续的1的个数,然后进行相加即可(想不到一点) class Solution(object):def countBinaryS…

利用管道、信号量、信号、共享内存和消息队列进行多进程通信

一.管道(分为命名管道和匿名管道) 管道的特点: ①无论是命名管道还是匿名管道,写入管道的数据都存放在内存之中。 ②管道是一种半双工的通信方式(半双工是指终端A能发信号给终端B,终端B也能发信号给终端…

keil添加了头文件仍然报找不到头文件的原因

如图,我在user分组新建Item,可是keil提示头文件不存在,所有的一切设置都是对的,但就是找不到头文件,找了很久,最后才发现是user分组和文件系统中的文件夹不一致的原因。 如图,在分组的文件系统的…

入门指南:使用Prometheus监控Linux服务器

Prometheus介绍 Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍: Prometheus的架构由四个主要组件组成: Prometheus Server(Prom…

Win10 安装.NET Framework 3.5 报错0x80240438

环境: Win10专业版 NET Framework 3.5 问题描述: Win10 安装.NET Framework 3.5 报错0x80240438 解决方案: 1.检查自动更新服务是否未开启,开启自动更新失败,用工具开启自动更新,重启电脑(未解决&am…

JVM虚拟机:如何查看JVM初始和最终的参数?

本文重点 在前面的课程中,我们学习了如何查看当前程序所处于的xx参数,本文再介绍一种如何参看JVM的xx参数? 查看JVM的所有初始化参数 方式一:java -XX:PrintFlagsInitial 方式二:java -XX:PrintFlagsInitial -versio…

Java基础50题:14. 使用方法求最大值(2种方法)

概述 使用方法求最大值。 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值函数max3。 要求: 在max3这个方法中,调用max2函数,来实现3个数的最大值计算。 方法一 【代码】 public class P14 {public static int max…

AI烟火识别智能视频分析系统解决方案

引言 随着城市化进程的加快和高科技的迅猛发展,传统的消防系统逐渐显露出局限性。在这种背景下,AI烟火识别智慧消防解决方案应运而生,它融合了最新的AI技术,旨在提高火灾的预防、检测、应对和控制能力,保护人民生命财…