1- 🐌 ` Shell ` 相关脚本
1+ 🐌 ` Shell ` 相关脚本
22====================================
33
44<!-- START doctoc generated TOC please keep comment here to allow auto update -->
4141` Shell ` 使用加强
4242====================================
4343
44- 🍺 [ c] ( ../c )
44+ 🍺 [ c] ( ../c )
4545----------------------
4646
4747原样命令行输出,并拷贝标准输出到系统剪贴板,省去` CTRL+C ` 操作,优化命令行与其它应用之间的操作流。
@@ -102,15 +102,15 @@ Options:
102102- [拷贝复制命令行输出放在系统剪贴板上](http://oldratlee.com/post/2012-12-23/command-output-to-clip),给出了不同系统可用命令。
103103- 关于文本文件最后的换行,参见[Why should text files end with a newline? ](https://stackoverflow.com/questions/729692)
104104
105- 🍺 [coat](../coat)
105+ 🍺 [coat](../coat)
106106----------------------
107107
108108彩色` cat` 出文件行,方便人眼区分不同的行。
109109支持` Linux` 、` Mac` 、` Windows` (` cygwin` 、` MSSYS` )。
110110
111111命令支持选项、功能和使用方式与[` cat` 命令](https://linux.die.net/man/1/cat)完全一样(实际上读流操作在实现上全部代理给` cat` 命令)。
112112
113- 命令名` coat` 意思是` COlorful cAT` ;当然单词` coat` 的意思是外套,彩色输入行就像件漂亮的外套~ 😆
113+ 命令名` coat` 意思是` COlorful cAT` ;当然单词` coat` 的意思是外套,彩色输入行就像件漂亮的外套~ 😆
114114注:之前命名是` colines` (意思是` COLorful LINES` )。
115115
116116# ## 示例
@@ -163,9 +163,9 @@ or available locally via: info '(coreutils) cat invocation'
163163` ` `
164164
165165注:上面示例中,没有彩色;在控制台上运行可以看出彩色效果,如下:
166- ! [](../docs/coat.png)
166+ ! [coat screenshot ](../docs/coat.png)
167167
168- 🍺 [a2l](../a2l)
168+ 🍺 [a2l](../a2l)
169169----------------------
170170
171171按行彩色输出参数,方便人眼查看。
@@ -193,7 +193,7 @@ test-cases/self-installer.sh
193193
194194注:上面示例中,没有彩色;在控制台上运行可以看出彩色效果,和上面的` coat` 命令一样。
195195
196- 🍺 [ap](../ap) and [rp](../rp)
196+ 🍺 [ap](../ap) and [rp](../rp)
197197----------------------
198198
199199批量转换文件路径为绝对路径/相对路径,会自动跟踪链接并规范化路径。
@@ -226,7 +226,9 @@ $ rp /home /etc/../etc /home/admin
226226` ` `
227227
228228< a id=" beer-tcp-connection-state-countersh" ></a>
229- 🍺 [tcp-connection-state-counter](../tcp-connection-state-counter)
229+ < a id=" beer-tcp-connection-state-counter" ></a>
230+
231+ 🍺 [tcp-connection-state-counter](../tcp-connection-state-counter)
230232----------------------
231233
232234统计各个` TCP` 连接状态的个数。
@@ -257,15 +259,15 @@ SYN_SENT 17
257259
258260[sunuslee](https://github.com/sunuslee)改进此脚本,增加对` MacOS` 的支持。 [# 56](https://github.com/oldratlee/useful-scripts/pull/56)
259261
260- 🍺 [xpl](../xpl) and [xpf](../xpf)
262+ 🍺 [xpl](../xpl) and [xpf](../xpf)
261263----------------------
262264
263265在命令行中快速完成 在文件浏览器中 打开/选中 指定的文件或文件夹的操作,优化命令行与其它应用之间的操作流。
264266支持` Linux` 、` Mac` 、` Windows` (` cygwin` 、` MSSYS` )。
265267
266- * ` xpl` :在文件浏览器中打开指定的文件或文件夹。
268+ - ` xpl` :在文件浏览器中打开指定的文件或文件夹。
267269 ` xpl` 是` explorer` 的缩写。
268- * ` xpf` : 在文件浏览器中打开指定的文件或文件夹,并选中。
270+ - ` xpf` : 在文件浏览器中打开指定的文件或文件夹,并选中。
269271 ` xpf` 是` explorer and select file`的缩写。
270272
271273# ## 用法
@@ -300,7 +302,9 @@ xpf /path/to/dir1 /path/to/foo1.txt
300302====================================
301303
302304< a id=" beer-echo-argssh" ></a>
303- 🍺 [echo-args](../echo-args)
305+ < a id=" beer-echo-args" ></a>
306+
307+ 🍺 [echo-args](../echo-args)
304308----------------------
305309
306310在编写脚本时,常常要确认输入参数是否是期望的:参数个数,参数值(可能包含有人眼不容易发现的空格问题)。
@@ -322,12 +326,12 @@ $ ./echo-args 1 " 2 foo " "3 3"
322326
323327需要查看某个脚本(实际上也可以是其它的可执行程序)输出参数时,可以这么做:
324328
325- * 把要查看脚本重命名。
326- * 建一个` echo-args` 脚本的符号链接到要查看参数的脚本的位置,名字和查看脚本一样。
329+ - 把要查看脚本重命名。
330+ - 建一个` echo-args` 脚本的符号链接到要查看参数的脚本的位置,名字和查看脚本一样。
327331
328332这样可以不改其它的程序,查看到输入参数的信息。
329333
330- 🍺 [console-text-color-themes.sh](../console-text-color-themes.sh)
334+ 🍺 [console-text-color-themes.sh](../console-text-color-themes.sh)
331335----------------------
332336
333337显示` Terminator` 的全部文字彩色组合的效果及其打印方式。
@@ -347,7 +351,7 @@ colorEcho "0;31;40" "Hello world!"
347351colorEchoWithoutNewLine " 4;33;40" " Hello world!" " Hello Hell!"
348352` ` `
349353
350- ` console-text-color-themes.sh` 的运行效果图如下:
354+ ` console-text-color-themes.sh` 的运行效果图如下:
351355! [console-text-color-themes.sh的运行效果图](console-colorful-text.png)
352356
353357# ## 贡献者
@@ -358,7 +362,7 @@ colorEchoWithoutNewLine "4;33;40" "Hello world!" "Hello Hell!"
358362
359363- [utensil](https://github.com/utensil)的[在Bash下输出彩色的文本](http://utensil.github.io/tech/2007/09/10/colorful-bash.html),这是篇很有信息量很钻研的文章!
360364
361- 🍺 [parseOpts.sh](../parseOpts.sh)
365+ 🍺 [parseOpts.sh](../parseOpts.sh)
362366----------------------
363367
364368命令行选项解析库,加强支持选项有多个值(即数组)。
@@ -385,8 +389,8 @@ find file: bar.txt
385389
386390- ` -` : 无参数的选项。即有选项则把值设置成` true` 。这是 *** 缺省*** 的类型。
387391- ` :` : 有参数的选项,值只有一个。
388- - ` +` : 有多个参数值的选项。值列表要以` ; ` 表示结束。
389- 注意,` ; ` 是` Bash` 的元字符(用于一行中多个命令分隔),所以加上转义写成` \; ` (当然也可以按你的喜好写成` " ;" ` 或` ' ;' ` )。
392+ - ` +` : 有多个参数值的选项。值列表要以` ; ` 表示结束。
393+ 注意,` ; ` 是` Bash` 的元字符(用于一行中多个命令分隔),所以加上转义写成` \; ` (当然也可以按你的喜好写成` " ;" ` 或` ' ;' ` )。
390394
391395实际要解析的输入参数往往是你的脚本参数,这样` parseOpts` 函数调用一般是:
392396
@@ -397,10 +401,10 @@ parseOpts "a,a-long|b,b-long:|c,c-long+" "$@"
397401
398402通过约定的全局变量来获取选项和参数:
399403
400- * 选项名为` a` ,通过全局变量` _OPT_VALUE_a` 来获取选项的值。
401- * 选项名为` a-long` ,通过全局变量` _OPT_VALUE_a_long` 来获取选项的值。
402- 即,把选项名的` -` 转` _` ,再加上前缀` _OPT_VALUE_` 对应的全局变量来获得选项值。
403- * 除了选项剩下的参数,通过全局变量` _OPT_ARGS` 来获取。
404+ - 选项名为` a` ,通过全局变量` _OPT_VALUE_a` 来获取选项的值。
405+ - 选项名为` a-long` ,通过全局变量` _OPT_VALUE_a_long` 来获取选项的值。
406+ 即,把选项名的` -` 转` _` ,再加上前缀` _OPT_VALUE_` 对应的全局变量来获得选项值。
407+ - 除了选项剩下的参数,通过全局变量` _OPT_ARGS` 来获取。
404408
405409按照惯例,输入参数中如果有` --` 表示之后参数中不再有选项,即之后都是参数。
406410
@@ -443,17 +447,17 @@ parseOpts "a,a-long|b,b-long:|c,c-long+" -a -b bv -- --c-long c.sh -p pv -q qv a
443447这个脚本比较复杂,测试过的环境有:
444448
4454491. ` bash --version`
446- ` GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)`
447- ` uname -a`
448- ` Linux foo-host 2.6.32-41-generic # 94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64 GNU/Linux`
450+ ` GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)`
451+ ` uname -a`
452+ ` Linux foo-host 2.6.32-41-generic # 94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64 GNU/Linux`
4494531. ` bash --version`
450- ` GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin14)`
451- ` uname -a`
452- ` Darwin foo-host 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin`
454+ ` GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin14)`
455+ ` uname -a`
456+ ` Darwin foo-host 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin`
4534571. ` bash --version`
454- ` GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)`
455- ` uname -a`
456- ` Linux foo-host 2.6.9-103.ELxenU # 1 SMP Wed Mar 14 16:31:15 CST 2012 i686 i686 i386 GNU/Linux`
458+ ` GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)`
459+ ` uname -a`
460+ ` Linux foo-host 2.6.9-103.ELxenU # 1 SMP Wed Mar 14 16:31:15 CST 2012 i686 i686 i386 GNU/Linux`
457461
458462# ## 贡献者
459463
0 commit comments