记linux shell的两个小技巧:shell数组和字符串判断

简介:

  最近在使用shell写脚本的时候,想实现python中两个很简单的功能:1:判断一个字符串是否包含另一个字符串。2:怎么用实现python的列表功能。这里跟大家分享一下。


1:判断一个字符串是否包含另一个字符串:

1
2
3
4
5
6
string= "abcdefg"
if  [[  "$string"  =~  "abc"  ]]; then
   echo  "do something.."
else
   echo  "nothing.."
fi

 以上的shell判断"abc"是否包含在字符串$string中。

 运行结果为:do something..


2:使用shell的数组达到python的列表效果。

 定义数组:

  # test=(a b c d e f g)

  查看数组:

  # echo ${test[@]}

   a b c d e f g

  往数组中追加一个元素e:

  # test=(${test[@]} e)  

  # echo ${test[@]}

   a b c d e f g e

 通过下标索引删除一个元素,shell数组的下表和python一样,是从0开始的,所以2下标代表的是第三个元素c:

  # unset test[2]

  # echo ${test[@]}

   a b d e f g e

 数组分片,以下命令截取了test数组0-3的元素范围,即前三个元素:

 # echo ${test[@]:0:3}

   a b d

 循环访问数组: 

1
2
3
4
5
6
7
8
9
10
11
12
# for element in ${test[@]}
  do
  echo  "This is $element..."
  done
#result 
This is a...
This is b...
This is d...
This is e...
This is f...
This is g...
This is e...

  










本文转自 icenycmh 51CTO博客,原文链接:http://blog.51cto.com/icenycmh/1794868,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
419 9
|
2月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
307 2
|
4月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
554 0
|
6月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
197 4
|
6月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
400 3
|
Java Shell 开发工具
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(二)
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
227 0
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(二)
|
Shell
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(一)
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
336 0
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(一)
|
Shell
Shell数组变量定义-获取-拼接-删除
Shell数组变量定义-获取-拼接-删除
218 0
|
网络协议 Shell 应用服务中间件
shell脚本中实现数组变量
shell 数组变量 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 数组变量和普通变量的区别:最明显的曲边就是普通变量一次只能设置一个变量值,而数组可以有多个值,例如普通变量(ip=192.168.81.210),数组变量(ip=(192.168.81.210 192.168.81.220)),普通变量是按一个字符当做一个索引位,而数组变量是一个字符串作为一个变量,另外普通变量的索引位都是整数,从0开始,而数组变量可以是整数也可以是字符串,这就要说到关联数组,例如(info=([name]tianyun [sex]male))
555 0