Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash变量参数扩展完整文档_Bash - Fatal编程技术网

Bash变量参数扩展完整文档

Bash变量参数扩展完整文档,bash,Bash,有一些鲜为人知的bash变量扩展: +----------------------------------------------------------+----------------+ | description | expression | +----------------------------------------------------------+----------------

有一些鲜为人知的bash变量扩展:

+----------------------------------------------------------+----------------+
|                       description                        |   expression   |
+----------------------------------------------------------+----------------+
| Remove everything **after** the **last** '7'             | ${var%7*}      |
| Remove everything **after** the **first** '7'            | ${var%%7*}     |
| Remove everything **before** the **first** '7'           | ${var#*7}      |
| Remove everything **before** the **last** '7'            | ${var##*7}     |
| First char upper case                                    | ${var^}        |
| All upper case                                           | ${var^^}       |
| First char lower case                                    | ${var,}        |
| All lower case                                           | ${var,,}       |
| Show how variable was set                                | ${var@A}       |
| ?? something cool ??                                     | ${var@E}       |
| Print variable as though it were the prompt variable PS1 | ${var@P}       |
| ?? something cool ??                                     | ${var@Q}       |
+----------------------------------------------------------+----------------+
我一直在努力寻找记录所有这些技巧的来源。到目前为止,我找到的最好的是这张备忘单。但即使是这个页面也缺少一些扩展规则。为了编写好的bash代码,并使代码具有可移植性,我正在寻找以下几点:

bash变量扩展的所有技巧是什么? 哪里有一个文档可以用示例来展示所有这些文档? bash的哪些版本可以使用哪些技巧? 关于参数展开的一些好的指针:

你错过了很多,比如

单次替换a->b:${x/a/b} 多重替换a->b:${x//a/b} 偏移量操作:${x:1:3} ${var word}如果定义了var,则使用var;否则,字 ${var+word}如果定义了var,则使用word;否则什么都没有 ${var=word}如果定义了var,则使用var;否则,请使用word并将word指定给var ${var?error}如果定义了var,则使用var;否则打印错误并退出 数组片${files[@]:-4} 请注意,大多数PE也使用数组

一些关于参数扩展的好指针:

你错过了很多,比如

单次替换a->b:${x/a/b} 多重替换a->b:${x//a/b} 偏移量操作:${x:1:3} ${var word}如果定义了var,则使用var;否则,字 ${var+word}如果定义了var,则使用word;否则什么都没有 ${var=word}如果定义了var,则使用var;否则,请使用word并将word指定给var ${var?error}如果定义了var,则使用var;否则打印错误并退出 数组片${files[@]:-4}
请注意,大多数PE也使用array

man bash文档所有这些文档,但文档中没有任何示例,并且是用真正的技术语言编写的。我的答案变成了“社区wiki”,因此它对growman bash文档开放所有这些,除了文档没有任何示例,而且是用真正的技术语言编写的。我的答案变成了“社区wiki”,所以它对Grow开放。我也喜欢高级Bash脚本,我也喜欢高级Bash脚本