没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论









pure bash bible
bash奇巧淫技.
license
license
MIT
MIT
本书原作者将书中的内容发布到了github上,我仅仅是将
其翻译为中文,并解释了其中的部分语句语法,希望可以对今
后的工作有所帮助。
以下是翻译后的原文
这本书的目的是汇总只使用内置 bash 的特性来实现总所
周知和鲜为人知的各项任务。 使用此参考书中的代码段可以帮
助你从脚本中删除不需要的依赖项,并且在大多数情况下可以
使它们运行的更快。 我偶然碰到了这些技巧并在开发
neofetch, pxltrm 和一些其他小的项目的时候发现了一些别的
技巧。
下面的片段使用 shellcheck 进行了检查,并将测试写在了适用的地方。 想要贡献自己的代码? 阅读
CONTRIBUTING-Zh_CN.md. 它概述了向参考书中增加片段时,单元测试的工作方式以及其他所需的内
容。
看到了一些东西描述是不准确的、有缺陷的更或者是完全错误的?那么请新建一个issue或者发送一
个pull request.如果参考书中缺少某些你想要的事物,也请新建一个issue并给出你能找到的解决方法。
目 录
前言
字符串
删除字符串前后空格
删除字符串中的所有的空白并用空格分割单词
在字符串上匹配正则表达式

指定分隔符拆分字符串
将字符串转换为小写
将字符串转换为大写
反转字符串大小写
删除字符串中的引号
从字符串中删除所有正则实例
从字符串中删除第一次出现的正则实例
在字符串开头匹配正则并删除
在字符串末尾匹配正则并删除
百分号编码字符串
解码用百分比编码的字符串
检查字符串是否包含子字符串
检查字符串是否以子字符串开头
检查字符串是否以子字符串结尾
数组
反转数组
删除重复的数组元素
随机返回一个数组元素
循环迭代一个数组
在两个值之间转换
循环
循环生成范围内的数字
循环遍历可变数字范围
循环数组
循环输出带索引的数组
循环遍历文件的内容
循环遍历文件和目录
文本处理
读取文件到一个字符串中
读取文件到一个数组中 (
按行读取
)
获取文件的前N行
获取文件的最后N行
获取文件中的行数
计算目录中的文件或目录
创建一个空文件
提取两个标记之间的行
文件路径
获取文件路径的目录名

在shell函数或源文件完成执行时执行某些操作
性能
禁用Unicode码
已过时的语法
释伴声明
命令替换
声明函数
内部变量
获取 bash 二进制文件的位置
获取当前运行 bash 命令的版本
打开用户默认的文本编辑器
获取当前函数的名称
获取系统的主机名
获取操作系统的架构(32位或64位)
获取操作系统/内核的名称
获取当前的工作目录
获取脚本运行的秒数
获取伪随机整数
有关终端的信息
获取终端的总行列数(
来自脚本
)
获取终端的像素大小
获取当前光标位置
转换
将十六进制颜色转换为RGB
将RGB颜色转换为十六进制
代码高尔夫
更短的 for 循环语法
更短的无限循环
更短的函数声明
更短的 if 语法
用 case 语句来更简单的设置变量
其他
使用 read 作为 sleep 命令的替代品
检查一个命令是否在用户的PATH中
使用 strftime 获取当前日期
获取当前用户的用户名
生成一个V4版本的UUID
进度条

获取脚本中的函数列表
绕过shell别名
绕过shell函数
在后台运行命令
后记
前言
纯 bash 脚本替代外部流程和程序的集合。 bash 脚本语言远比大部分人了解到的更强大,大多数任
务都可以在不依赖外部程序的情况下由 bash 独立完成。
在 bash 中调用外部进程是昂贵的,过度使用会导致效率明显的下降。 使用内置方法编写的脚本和
程序(
在适合的地方
)将更快,依赖性更小,并能对脚本本身有更好的理解。
本书的目的是为大家用 bash 编写程序和脚本过程中遇到问题时提供了一种思路。 示例展示了将这
些解决方案合并到代码中的函数格式。
字符串
删除字符串前后空格
这是 sed , awk , perl 和其他工具的替代品。下面的函数通过查找所有头尾空格并在字符串的开头
和结尾删除它来实现这一功能。
: 内置用于代替临时变量。
示例函数:
用法示例:
删除字符串中的所有的空白并用空格分割单词
这是 sed , awk , perl 和其他工具的替代品。
下面的函数通过重复使用单词拆分来创建一个没有前导/尾随空格的新字符串,并用空格分割字符串中的
单词。
trim_string() {
# Usage: trim_string " example string "
: "${1#"${1%%[![:space:]]*}"}"
: "${_%"${_##*[![:space:]]}"}"
printf '%s\n' "$_"
}
1
2
3
4
5
6
$ trim_string " Hello, World "
Hello, World
$ name=" John Black "
$ trim_string "$name"
John Black
1
2
3
4
5
6
剩余39页未读,继续阅读
资源评论


DaringWoo
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
