From 50b597feeee71733a5d1552641fd52d6be383575 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Wed, 23 Nov 2022 23:06:08 +0800 Subject: [PATCH] doc: update `bash.md`. --- docs/bash.md | 144 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 135 insertions(+), 9 deletions(-) diff --git a/docs/bash.md b/docs/bash.md index c24e6749..cd7c8bd2 100644 --- a/docs/bash.md +++ b/docs/bash.md @@ -366,7 +366,7 @@ Bash 条件句 `[[ -z STR ]]` | 空字符串 `[[ -n STR ]]` | 空字符串 `[[ STR == STR ]]` | 相等 -`[[ STR = STR ]]` | 相等(同上) +`[[ STR = STR ]]` | 相等(同上) `[[ STR < STR ]]` | 小于 _(ASCII)_ `[[ STR > STR ]]` | 大于 _(ASCII)_ `[[ STR != STR ]]` | 不相等 @@ -562,7 +562,7 @@ while true; do done ``` -### 死循环(简写) +### 死循环(简写) ```bash while :; do @@ -590,7 +590,7 @@ myfunc() { ``` ```bash -# 同上(替代语法) +# 同上(替代语法) function myfunc() { echo "hello $1" } @@ -711,7 +711,7 @@ Bash 历史 代码 | 描述 :- | - -`!!:n` | 仅扩展最近命令中的第 `n` 个标记(命令为 `0`;第一个参数为 `1`) +`!!:n` | 仅扩展最近命令中的第 `n` 个标记(命令为 `0`;第一个参数为 `1`) `!^` | 从最近的命令展开第一个参数 `!$` | 从最近的命令中展开最后一个标记 `!!:n-m` | 从最近的命令扩展令牌范围 @@ -750,12 +750,12 @@ command -V cd ```bash -python hello.py > output.txt # 标准输出到(文件) -python hello.py >> output.txt # 标准输出到(文件),追加 -python hello.py 2> error.log # 标准错误到(文件) +python hello.py > output.txt # 标准输出到(文件) +python hello.py >> output.txt # 标准输出到(文件),追加 +python hello.py 2> error.log # 标准错误到(文件) python hello.py 2>&1 # 标准错误到标准输出 -python hello.py 2>/dev/null # 标准错误到(空null) -python hello.py &>/dev/null # 标准输出和标准错误到(空null) +python hello.py 2>/dev/null # 标准错误到(空null) +python hello.py &>/dev/null # 标准输出和标准错误到(空null) ``` ```bash @@ -953,6 +953,131 @@ echo "${args[@]}" 将参数放入数组中,然后追加 +Bash 颜色 +---- + +### 颜色着色语法示例 + + +您可以通过为其输出着色来使您的 BASH 脚本更漂亮,使用以下模板编写彩色文本: + +```bash +echo -e "\e[COLORm文字变色了\e[0m" +``` + +#### 示例 + +```bash +$ echo -e "\e[31m命令行中显示红色文字\e[0m" +``` + +命令行中显示红色文字 + +``` +$ echo -e "\e[42m绿色背景\e[0m" +``` + +`绿色背景` + +Option | Description +:- | -- +`-e` | 启用反斜杠转义的解释 +`\e[` 或 `\x1b[` 或 `\033[` | 开始颜色修改 +`COLORm` | 颜色代码 + `m` 在末尾 +`\e[0m` 或 `\x1b[0m` 或 `\033[0m` | 结束颜色修改 + + +`0x1b` 字面上称为 `ESC` + +#### 示例 + +```bash +$ echo -e "\e[3m下划线文本\e[0m" +``` + +`下划线文本` + +```bash +$ echo -e "\e[1;33;4;44m粗体下划线蓝色背景黄色文字的文本\e[0m" +``` + + +`粗体下划线蓝色背景黄色文字的文本` + +```bash +\e[ # 启用转义 +1;33;4;44 # 参数 (1;33;4;44) +m # 设置图形模式 +``` + +#### 样式 + +:- | -- | -- +:- | -- | -- +`0` | 普通字符(复位或正常) | 关闭所有属性 +`1` | **粗体**字 +`2` | 弱化(降低强度) | 未广泛支持 +`3` | 斜体 | 未广泛支持有时为反相显示 +`4` | 下划线 +`5` | 缓慢闪烁 +`6` | 快速闪烁 +`7` | 反显 +`8` | 隐藏 | 未广泛支持。 +`9` | 划除 + +### ANSI — 颜色转义码 + +颜色 | 前景色 | 背景色 | 示例 +:- | -- | -- | -- +`Black` 黑色 | 30 | 40 | `` +`Red` 红色 | 31 | 41 | `` +`Green` 绿色 | 32 | 42 | `` +`Yellow` 黄色 | 33 | 43 | `` +`Blue` 蓝色 | 34 | 44 | `` +`Purple` 紫色 | 35 | 45 | `` +`Cyan` 青色 | 36 | 46 | `` +`White` 白色 | 37 | 47 | `` + + +### ANSI — 颜色转义码(亮色) + +颜色 | 前景色 | 背景色 | 示例 +:- | -- | -- | -- +`Bright Black(Gray)` 灰色 | 90 | 100 | `` +`Bright Red` 亮红色 | 91 | 101 | `` +`Bright Green` 亮绿色 | 92 | 102 | `` +`Bright Yellow` 亮黄色 | 93 | 103 | `` +`Bright Blue` 亮蓝色 | 94 | 104 | `` +`Bright Magenta` 亮紫色 | 95 | 105 | `` +`Bright Cyan` 亮青色 | 96 | 106 | `` +`Bright White` 浅灰 | 97 | 107 | `` + + +### 可用功能 + + +:- | -- | -- +:- | -- | -- +`n` A | 光标上移 | 光标向指定的方向移动 `n`(默认1)格 +`n` B | 光标下移 | 光标向指定的方向移动 `n`(默认1)格 +`n` C | 光标前移 | 光标向指定的方向移动 `n`(默认1)格 +`n` D | 光标后移 | 光标向指定的方向移动 `n`(默认1)格 +`n` E | 光标移到下一行 | 光标移动到下面第 `n`(默认1)行的开头(非ANSI.SYS) +`n` F | 光标移到上一行 | 光标移动到上面第 `n`(默认1)行的开头(非ANSI.SYS) +`n` G | 光标水平绝对 | 光标移动到第 `n`(默认1)列(非ANSI.SYS) +`n`;`m` H | 光标位置 | 光标移动到第 `n`行、第 `m` 列。值从1开始,且默认为1(左上角) +`n` J | ED – 擦除显示 | 清除屏幕的部分区域 +`n` K | EL – 擦除行 | 清除行内的部分区域 +`n` S | SU – 向上滚动 | 整页向上滚动 `n`(默认1)行。新行添加到底部 (非ANSI.SYS) +`n` T | SD – 向下滚动 | 整页向下滚动 `n`(默认1)行。新行添加到顶部 (非ANSI.SYS) +`n`;`m`f | HVP – 水平垂直位置 | 同CUP +`n` `m` | SGR – 选择图形再现 | 设置SGR参数,包括文字颜色 +`5i` | 打开辅助端口 | 启用辅助串行端口,通常用于本地串行打印机 +`4i` | 关闭辅助端口 | 禁用辅助串行端口,通常用于本地串行打印机 +`6n` | DSR – 设备状态报告 | 以 `ESC[n;mR` (就像在键盘上输入)向应用程序报告光标位置(CPR),其中 `n`是行, `m` 是列 +`s` | SCP – 保存光标位置 | 保存光标的当前位置 +`u` | RCP – 恢复光标位置 | 恢复保存的光标位置 + 另见 ---- @@ -964,3 +1089,4 @@ echo "${args[@]}" - [Bash Guide](http://mywiki.wooledge.org/BashGuide) _(mywiki.wooledge.org)_ - [ShellCheck](https://www.shellcheck.net/) _(shellcheck.net)_ - [shell - Standard Shell](https://devmanual.gentoo.org/tools-reference/bash/index.html) _(devmanual.gentoo.org)_ +- [ANSI 转义序列](https://zh.wikipedia.org/wiki/ANSI转义序列) _(zh.wikipedia.org)_