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

news2025/1/17 22:04:20

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

图片

图片

这也太麻烦了吧

执行如下:

图片

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

图片

执行效果与上面一致:

图片

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

图片

图片

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

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

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

图片

修改后执行效果如下:

图片

输入其它如命令等参数:

图片

图片

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】一维数组的聚类

在学习聚类算法的过程中,学习到的聚类算法大部分都是针对n维的,针对一维数据的聚类方式较少,今天就来学习下如何给一维的数据进行聚类。 方案一:采用K-Means对一维数据聚类 Python代码如下: from sklearn.cluster im…

Zabbix自定义飞书webhook告警媒介1

说明:此配置仅适用于7版本及以上,低版本可能有问题 JavaScript 内容如下: try {var sourceData JSON.parse(value),req new HttpRequest(),response;if (sourceData.HTTPProxy) {req.setProxy(sourceData.HTTPProxy);}req.addHeader(Conte…

vuepress-----20、全文搜索

默认主题自带的搜索, 只会为页面的标题、h2、h3 以及 tags构建搜索索引。所以尽量将围绕知识点的关键字体现到标题上。而 tags 更为灵活,可以把相关的能想到的关键字都配置到 tags 中,以方便搜索。 默认插件介绍 (opens new window) 默认主体配置 (ope…

Latex公式中矩阵的方括号和圆括号表示方法

一、背景 在使用Latex写论文时,不可避免的涉及到矩阵公式。有的期刊要求矩阵用方括号,有的期刊要求矩阵用圆括号。因此,特记录一下Latex源码在两种表示方法上的区别,以及数组和方程组的扩展。 二、矩阵的方括号表示 首先所有的…

CnetSDK .NET OCR Library SDK Crack

CnetSDK .NET OCR Library SDK Crack CnetSDK .NET OCR Library SDK 是一款高精度 .NET OCR 扫描仪软件,用于从图像中识别字符,如文本、手写和符号。该.NET OCR库软件采用Tesseract OCR引擎技术,将字符识别准确率提高高达99%。通过将 .NET OC…

时序数据库选型TimescaleDB

最近要做一个数字车间的物联网项目,数据存储成了首先要解决的问题,整个车间一共104台数控机床,1s钟采集1次数据,360024365*1043,279,744,000 ,一年要产生32亿条记录,这个数据量用常见的关系型数据库肯定是不…

PHP对接企业微信

前言 最近在做项目中,要求在后台管理中有企业微信管理的相关功能。相关准备工作,需要准备好企业微信账号,添加自建应用,获得相应功能的权限,以及agentid、secre等。 参考文档: 企业微信开发文档 功能实现 因…

MacBook 逆水寒下载安装使用教程,支持最新版本 MacOS 流畅不闪退

最近 MacBook 系统更新到了 MacOS 14.1 很多朋友的逆水寒玩不了了,我尝试了一番可以正常玩了,看图: 其实操作也很简单,我们从头开始,因为 MacOS 系统的更新所以我们也需要更新新版本的 playCover 来适配新的系统&#…

【Vue第3章】使用Vue脚手架_Vue2_笔记

笔记 脚手架文件结构 ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── assets: 存放静态资源 │ │ └── logo.png │ │── component: 存放组件 │ │ └── HelloWorld.vue …

配置禁止BT下载的示例

如图1所示,企业内用户通过交换机连接到RouterA的Eth2/0/0,并通过RouterA的GE0/0/1接口连接到WAN侧网络。 现在要求在RouterA上通过配置基于智能应用控制SAC(Smart Application Control)的流分类,禁止企业用户进行BT下载。 图1 配置禁止BT下载的组网图: 操作步骤 1.Rout…

[原创][6]探究C#多线程开发细节-“ConcurrentDictionary<T,T>解决多线程的无顺序性的问题“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

电商系统架构演进

聊聊电商系统架构演进 具体以电子商务网站为例, 展示web应用的架构演变过程。 1.0时代 这个时候是一个web项目里包含了所有的模块,一个数据库里包含了所需要的所有表,这时候网站访问量增加时,首先遇到瓶颈的是应用服务器连接数&a…

【动态规划】03使用最小花费爬楼梯(easy1)

题目链接:leetcode使用最小花费爬楼梯 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求达到楼梯顶部的最低花费. 由题可得: cost[i] 是从楼梯第 i 个…

AI并行计算:CUDA和ROCm

1 介绍 1.1 CUDA CUDA(Compute Unified Device Architecture)是Nvidia于2006年推出的一套通用并行计算架构,旨在解决在GPU上的并行计算问题。其易用性和便捷性能够方便开发者方便的进行GPU编程,充分利用GPU的并行能力&#xff0…

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

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

ISIS默认路由下发的各种机制

作者简介:大家好,我是Asshebaby,热爱网工,有网络方面不懂的可以加我一起探讨 :1125069544 个人主页:Asshebaby博客 当前专栏: 网络HCIP内容 特色专栏: 常见的项目配置 本文内容&am…

VC++使用GetProcessTimes获取进程创建时间、销毁时间、用户态时间、内核态时间

一、GetProcessTimes函数简介(微软MSDN) 微软提供了一个非常有用的API函数GetProcessTimes用来获取进程创建时间、销毁时间、用户态时间、内核态时间,msdn连接为:GetProcessTimes 函数 (processthreadsapi.h) 其函数原型为&#…

网络管理相关

管理功能分为管理站manager和代理agent两部分。 网络管理: 网络管理系统中,每一个网络节点都包含有一组与管理有关的软件,叫做网络管理实体NME。 管理站的另外一组软件叫做网络管理应用NMA,提供用户接口,根据用户命令显…

渗透测试(Lab1.0)

1、用搜索引擎Google或百度搜索麻省理工学院网站中文件名包含“network security”的pdf文档,截图搜索得到的页面。 2、照片中的女生在哪里旅行? 截图搜索到的地址信息。 搜索餐厅的名字,找一下关键词 3、手机位置定位 通过LAC&#xff0…

【Ambari】Python调用Rest API 获取YARN HA状态信息并发送钉钉告警

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…