• 当前位置: 首 页 > 教育百科 > 其他 > 正文

    一份Linux shell“圣经”收好

    :2019年11月06日
    编程珠玑

    不知道你是否在为突然想实现某个功能的小脚本而苦苦寻找答案,这里有一份“圣经”用来查看各种仅使用内置bash命令实现各种常用的功能和鲜为人知的用法。

    作者:守望,Linux应用开发者

    前言

    不知道你是否在为突然想实现某个功能的小脚本而苦苦寻找答案,这里有一份“圣经”用来查看各种仅使用内置bash命令实现各种常用的功能和鲜为人知的用法。

    为什么要写脚本?

    无论是作为Linux应用开发还是运维,编写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

    ' "$_"

    }

    那么在shell脚本中就可以这样调用:

    trim_string "    Hello,  World    "

    #会打印这个结果:Hello,  World

    而又例如在介绍循环的时候,告诉你一些常见的循环方式:

    # Loop from 0-100 (no variable support).

    for i in {0..100}; do

        printf '%s

    ' "$i"

    done

    或者

    VAR=50

    for ((i=0;i<=VAR;i++)); do

        printf '%s

    ' "$i"

    done

    又或者:

    for element in "${arr[@]}"; do

        printf '%s

    ' "$element"

    done

    总之作为基础学习的手册也是非常不错了,一些常用的语法在这里都能看到。

    总结

    实际上里面很多相关功能也有一些bash命令可以直接实现,但是大部分内容作为一个速查的渠道还是不错的,有兴趣的可以去查看:

    https://github.com/dylanaraps/pure-bash-bible

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 作者 守望 Linux 应用 开发者
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证