bash简单常见用法

news2024/10/7 10:23:01

bash新建自定义数组

myArray=()

for ((i = 0 ; i < 5 ; i++ ))

do

myArray[$i]="AAAA{$i}DD"

done

echo ${myArray[@]} #输出结果是AAAA{0}DD AAAA{1}DD AAAA{2}DD AAAA{3}DD AAAA{4}DD

提取文件名成功

projects="D:/Project/Program/IDEAWorkspace/myauto/automation-test/src/main/java/com/welab/automation/projects/channel/feature/abc.feature"

filename=${projects##*/} #变量赋值 等号两边不要空格

echo "${filename}" #输出结果abc.feature

bash if的用法,根据featureLocations的值是否包含API55,来确定给platform赋值

platform=""

featureLocations="API"

if [[ ${featureLocations[$i]^^} = *"API55"* ]]; then

platform="API"

else

platform="APP"

fi

echo ${platform}

bash脚本中变量大小写切换

name="Abc Def"

echo upper ${name}

echo ${name} | tr "[a-z]" "[A-Z]" 小写字母变成大写 ,mac和windows都适用

echo ${name,,} 大写字母变成小写

echo ${name^^} 小写字母变成大写

$ test="abcDEF"

# 把变量中的第一个字符换成大写

$ echo ${test^}

AbcDEF

# 把变量中的所有小写字母,全部替换为大写

$ echo ${test^^}

ABCDEF

# 把变量中的第一个字符换成小写

$ echo ${test,}

abcDEF

# 把变量中的所有大写字母,全部替换为小写

$ echo ${test,,}

abcdef

bash shell 详细介绍文档:

https://www.coolcou.com/bash-shell-example/bash-shell-variable/bash-shell-case.html

获取bash脚本所在的绝对路径

SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)

echo "${SHELL_FOLDER}"

与相对路径拼接,然后删除文件

rm -f ${SHELL_FOLDER}/delete/a/test.txt

for 语句依次打印数组元素

names=("Alen" "Walker" "Miller")

len=${#names[*]} #获取数组长度

echo "${len}"

echo The length of the array is - $len

for (( i=0; i<$len; i++ ))

do

echo The value of element $i is: ${names[$i]}

done

#数组A转成字符串S

A=(AA BB CC)

S=$(echo "${A[*]}")#A是数组,S是字符串。S的内容就是"AA BB CC"啦

S=$(IFS=,; echo "${A[*]}") #S="AA,CC,CC"

#字符串S转成数组A

S="AA BB CC"

A=(${S}) #A就是数组了,A=(AA BB CC)

names=("Alen" "Walker" "Miller")

echo The length of the array is ${#names[*]} #获取数组的长度

# 字符串转换成数字

index_num=$((index))

index_num=$((index-1)) #注意减1这些运算操作要在括号内进行

#定义数组,然后一次echo数字,让用户可以输入num来选中需要执行的case

folderarr=("Login" "Add Money EDDI" "Card") #定义数组用空格分开,而不是逗号

echo "1.Login"

echo "2.Add Money EDDI"

echo "3.Card"

echo "${folderarr}"

folderarr_len=${#folderarr[*]}

echo "folderarr_len ${folderarr_len}"

read ids #等待用户输入,读取用户输入的case id

myids=(${ids}) #字符串转数组

echo The length of the array is ${#myids[*]}

ll=${#myids[*]}

echo "${ll}"

echo "${#myids[*]}" #输出数组长度

#for (( i=0; i<$ll; i++ ))

#do

#echo The value of element $i is: ${folderarr[${i}]}

#done

#for index in "${myids[@]}"

#do

#echo "${index}"

#index_num=$((index)) # 字符串转换成数字

#echo "${index_num}"

#echo The value of element is: ${folderarr[index_num-1]}

#echo The value of element is: ${folderarr[0]}

#done

new_arr=()

#根据第一个数组的元素座位坐标,去第二个数组中获取对应的元素

echo "-----------------------"

for (( i=0; i<$ll; i++ ))

do

index=${myids[${i}]} #获取第i个元素

index_num=$((index-1)) # 把元素转换成数字,获取folderarr下坐标,由于坐标是从0开始,所以减1,注意减1要在括号内进行

echo "index_num ${index_num}"

item=${folderarr[${index_num}]} #根据数字从folderarr数组中

echo "item: ${item}"

echo "i: ${i}"

new_arr[${i}]="${item}"

echo "-----------------------"

done

#数组长度

echo "${new_arr[*]}" #输出整个new_arr数组

echo "${new_arr[1]}" #输出new_arr数组第二个元素

echo "${#new_arr[*]}" #输出整个new_arr数组长度,注意比输出整个数组多了一个 # 号

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

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

相关文章

x509证书中的Issuer和Subject

在x509标准中的位置 Issuer 颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义&#xff1a; Name 描述了一个由属性组成的分层名称&#xff0c;例如国家名称&…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

关于DSP28335设置内存分配设置堆栈笔记

关于DSP28335设置内存分 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 关于DSP28335设置内存分前言一、设置堆栈这里主…

【头歌】二叉树的顺序存储及基本操作

第1关&#xff1a;树和二叉树基本概念 任务描述 本关任务&#xff1a;根据所学树和二叉树的基本概念等相关知识&#xff0c;完成右侧的选择题。 相关知识 树的定义 从数据结构角度看&#xff0c;树包含n&#xff08;n≥0&#xff09;个结点&#xff0c;当n0时&#xff0c;…

thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

环境变量 设置环境变量 /.env [DATABASE] USERNAME root PASSWORD 123456 获取环境变量 app/controller/Index.php <?php namespace app\controller;use app\BaseController; use think\facade\Env;class Index extends BaseController {public function index(){$usern…

IO模型的分类以及各个io模型之间的优劣势

本文主要讲解bio以及nio的一些问题和知识&#xff0c;会对aio进行简单讲解&#xff0c;但不会深入剖析 我们说熟知的io模型有哪些呢&#xff1f; 同步阻塞io同步非阻塞io同步多路复用异步非阻塞io java的io本身是不具有真正的io操作能力的&#xff0c;当调用io操作时&#x…

基于ArcGIS:GIS空间分析复习-理论概念+案例分析

目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象、研究目标 1.3 研究目标是&#xff1a;认知、解释、预报、调控。 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 02 第二章 2.1 空间查询的概念、空间量算的概念 2.2 函数距离的概念 2.3 空间查询…

Android之 常用数据库框架整理

一 简介 1.1 上节说了关系型数据库有以下几种&#xff1a; Oracle、Microsoft SQL Server、Microsoft Access、MySQL、SQLite 1.2 各自的领域也不一样 java&#xff0c;C#&#xff0c;php等用Oracle&#xff0c;Microsoft SQL Server&#xff0c;MySQL比较多。 移动端Andr…

07 - 3系统容量规划

阿里系业务容量规划 Tair集群部署与水位调配 阿里系容量精调之单机压测场景 传统模拟请求 流量复制 流量转发 网关权重 线上测试注意点 阿里系混合部署技术 资源分时复用&#xff1a;提高资源利用率sigama框架做在线资源池调度&#xff0c;伏羲做离线资源池调度&#xff1b;…

基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

** 基于fpga的图像处理之图像灰度化处理 ** 本文的思路框架&#xff1a; ①本文采用两种算法进行灰度处理&#xff0c;平均法和加权均值法&#xff1b;加权均值法采用了直接公式求解和查找表两种方式验证 ②FPGA设计中三个设计技巧&#xff0c;可用于工程项目借鉴&#xff…

Redis了解

Redis 源码大概做了哪些事情&#xff1f; 设置默认参数创建对象、持久化定时器回调加载文件参数 (使用配置文件替代部分默认参数)加载文件数据写入字典创建client connect事件handler&#xff08;accept后&#xff0c;写入读写事件select()&#xff0c;最新的版本用epoll&…

xlsx 导出 (简单使用)

下载数据为xlsx 安装 npm install xlsx 在src下创建文件utils文件夹&#xff0c;在utils文件夹下创建XLSX.js文件 // 下载excel功能 import * as XLSX from xlsx/*** param dataList 表格数据内容 array* param fileName 文件标题。必须以 .xlsx结尾*/ export const download…

Linux网络——Shell编程之快捷命令

Linux网络——Shell编程之快捷命令 一、快捷排序 — sort 命令二、快捷去重 — uniq 命令三、快捷替换 — tr 命令四、快速裁剪 — cut 命令五、文件拆分 — split 命令六、文件合并 —paste 命令七、变量扫描器 — eval 命令 一、快捷排序 — sort 命令 sort命令用于以行为单位…

五步看平台,选好安全的MT4交易外汇平台

在选择MT4外汇交易平台时&#xff0c;如何避免不正规的平台?以下是5招教你远离不正规MT4交易外汇平台。 1. 查看平台是否取得合法许可证 首要考虑的是该平台是否取得了合法的许可证。许可证是证明一个交易平台合法的最重要证据&#xff0c;因此务必在选择时核查该平台的许可证…

得物深入浅出解析JVM中的Safepoint

1.初识Safepoint-GC中的Safepoint 最早接触JVM中的安全点概念是在读《深入理解Java虚拟机》那本书垃圾回收器章节的内容时。相信大部分人也一样&#xff0c;都是通过这样的方式第一次对安全点有了初步认识。不妨&#xff0c;先复习一下《深入理解Java虚拟机》书中安全点那一章…

你真的了解Java类加载机制吗?

大家好&#xff0c;我是小米&#xff0c;一个喜欢分享技术的程序员。今天我来给大家简述一下Java类加载模型。 在Java中&#xff0c;类的加载过程是在程序运行时动态进行的。Java的类加载模型可以分为三个步骤&#xff1a;加载、连接和初始化。 类加载过程&#xff1a;加载 首…

Android面试指南:谈谈你对Flutter的理解

一、Flutter简介 Flutter是由Google开发的一种基于Dar编程语言的移动应用开发框架。可以帮助开发在构建高性能、美观、灵活的应用程序&#xff0c;从而实现跨平台开发&#xff0c;适用于与Android、ios、web、windows、macOS和linux等多个平台。 二、学习Flutter有什么优势 …

Java EE企业级应用开发(SSM)第11章

第11章SSM框架 一.预习笔记 1.准备jar包&#xff08;注意版本&#xff09; Spring一套包 Springmvc两个 Mybatis一个 Spring整合mybatis一个 Jstl一个用于jsp显示数据 Mysql一个用于访问数据库 Gson一个用于返回json数据 2.准备配置文件web.xml applicationContext.xml…

MySQL Client

MySQL客户端很多&#xff0c;自身携带的一些客户端工具也需要了解&#xff0c;方便快速测试。 MySQL Shell MySQL Shell Commands。 执行SQL语句时&#xff0c;必须切换到SQL模式。Shell指令较少&#xff0c;同时可以使用Python \py模式。 MySQL Shell所有的命令后面不需要加…

TCP通道和共享链路通道

推送SDK为了适应不同的场景和需求&#xff0c;对于一些对消息及时性、可靠性、自定义性要求高的应用&#xff0c;如即时通讯、社交、游戏等&#xff0c;可能更倾向于使用TCP通道&#xff0c;对于一些对消息节省流量、耗电量、兼容性要求高的应用&#xff0c;如新闻、天气、股票…