shell 循环数组_一份 shell“圣经”收好

本文授权转载

来源:公众号【编程珠玑】

ID:shouwangxiansheng

作者:守望先生


前言 不知道你是否在为突然想实现某个功能的小脚本而苦苦寻找答案,这里有一份“圣经”用来查看各种仅使用内置 bash 命令实现各种常用的功能和鲜为人知的用法。 为什么要写脚本? 无论是作为 Linux 应用开发还是运维,编写 shell 脚本都是一个最基本的技能,而使用 shell 能够简洁快速地解决很多问题,提高效率。 什么你还不会?那么建议你花点时间学一下,毕竟花不了你太多时间就可以让它给你干活。你也可以参考这里了解一下最基本的用法《 这些必备的shell知识你都会了吗? 》 为什么要使用内置 bash 来实现? 使用内置的 bash 命令可以避免一些依赖,不至于你的脚本迁移到另外一个系统还需要装一些依赖,另外一方面,使用这些内置命令常常也会更加高效。 这份“圣经”是怎样的? 实际上它是 github 上地一个星标项目,地址如下: https://github.com/dylanaraps/pure-bash-bible 目前星标近 20k,它列出了一些常用的功能,有哪些呢,我们可以看看。 字符串 去掉字符串首尾的空格 去掉字符串中的空格并用空格分割 在字符串中使用正则表达式 分割字符串 字符串大小写转换 字符串反转 检查字符串中是否包含某个子串 检查字符串是否以某个子串结尾 …… 数组 反转数组 去除数组中重复元素 随机排列数组元素 …… 循环 以数值作为循环条件 以数值变量作为循环条件 以数组作为循环条件 遍历文件内容遍历文件和目录 …… 文件处理 将文件内容读取到字符串中 将文件内容以行为单位读取到数组中 读取文件的前n行 读取文件的最后n行 创建空文件 …… 文件路径 获取全路径中的目录名 获取全路径中的文件名 注意,这里仅仅是目录的一小部分,原项目中还有很多内容,包括一些内置变量的获取,系统信息的获取,一些常用语法,常见表达式,基本运算等等。 内容是什么样子的呢? 举个例子,如何去掉字符串首尾的元素,它给了一个 shell 函数:
trim_string() {
    # Usage: trim_string "   example   string    "
    : "${1#"${1%%[![:space:]]*}"}"
    : "${_%"${_##*[![:space:]]}"}"
    printf '%s\n' "$_"
}
那么在 shell 脚本中就可以这样调用:
trim_string "    Hello,  World    "#会打印这个结果:Hello,  World
而又例如在介绍循环的时候,告诉你一些常见的循环方式:
# Loop from 0-100 (no variable support).for i in {0..100}; doprintf '%s\n' "$i"done
或者
VAR=50for ((i=0;i<=VAR;i++)); doprintf '%s\n' "$i"done
又或者:
for element in "${arr[@]}"; doprintf '%s\n' "$element"done
总之作为基础学习的手册也是非常不错了,一些常用的语法在这里都能看到。 总结

实际上里面很多相关功能也有一些 bash 命令可以直接实现,但是大部分内容作为一个速查的渠道还是不错的,有兴趣的可以去查看: https://github.com/dylanaraps/pure-bash-bible - END - 45ccffe493d581e1d94fdb46ba20e44d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值