后一修订版 | 前一修订版 |
public:it:linux:shell [2021/04/06 15:54] – 创建 oakfire | public:it:linux:shell [2022/11/24 09:55] (当前版本) – oakfire |
---|
====== Shell ====== | ====== Shell ====== |
| * [[https://effective-shell.com/|Effective shell]] 免费shell教程电子书 |
===== Shell Script ===== | ===== Shell Script ===== |
* [[https://www.runoob.com/linux/linux-shell.html]] | * [[https://www.runoob.com/linux/linux-shell.html]] |
* 变量处理: | * 变量处理: |
| |
| ''${var}'' | 变量var的值, 与$var相同 | | | ''${var}'' | 变量var的值, 与$var相同 | |
| ''${var-DEFAULT}'' | 如果 var 没有被声明, 那么就以 $DEFAULT 作为其值 | | | ''${var-DEFAULT}'' | 如果 var 没有被声明, 那么就以 $DEFAULT 作为其值 | |
| ''${var:-DEFAULT}'' | 如果 var 没有被声明, 或者其值为空, 那么就以 $DEFAULT 作为其值 | | | ''${var:-DEFAULT}'' | 如果 var 没有被声明, 或者其值为空, 那么就以 $DEFAULT 作为其值 | |
| ''${var=DEFAULT}'' | 如果 var 没有被声明, 那么就以 $DEFAULT 作为其值 | | | ''${var=DEFAULT}'' | 如果 var 没有被声明, 那么就以 $DEFAULT 作为其值 | |
| ''${var:=DEFAULT}'' | 如果 var 没有被声明, 或者其值为空, 那么就以 $DEFAULT 作为其值 | | | ''${var:=DEFAULT}'' | 如果 var 没有被声明, 或者其值为空, 那么就以 $DEFAULT 作为其值 | |
| ''${var+OTHER}'' | 如果 var 声明了, 那么其值就是 $OTHER, 否则就为 null 字符串 | | | ''${var+OTHER}'' | 如果 var 声明了, 那么其值就是 $OTHER, 否则就为 null 字符串 | |
| ''${var:+OTHER}'' | 如果 var 被设置了, 那么其值就是$OTHER, 否则就为 null 字符串 | | | ''${var:+OTHER}'' | 如果 var 被设置了, 那么其值就是$OTHER, 否则就为 null 字符串 | |
| ''${var?ERR_MSG}'' | 如果 var 没被声明, 那么就打印 $ERR_MSG | | | ''${var?ERR_MSG}'' | 如果 var 没被声明, 那么就打印 $ERR_MSG | |
| ''${var:?ERR_MSG}'' | 如果 var 没被设置, 那么就打印 $ERR_MSG | | | ''${var:?ERR_MSG}'' | 如果 var 没被设置, 那么就打印 $ERR_MSG | |
| ''${!varprefix*}'' | 匹配之前所有以 varprefix 开头进行声明的变量 | | | ''${!varprefix*}'' | 匹配之前所有以 varprefix 开头进行声明的变量 | |
| ''${!varprefix@}'' | 匹配之前所有以 varprefix 开头进行声明的变量 | | | ''${!varprefix@}'' | 匹配之前所有以 varprefix 开头进行声明的变量 | |
| |
| * 字符串处理: |
| |
| | ''${#string}'' | \$string 的长度 | |
| | ''${string:position}'' | 在 \$string 中, 从位置 \$position 开始提取子串 | |
| | ''${string:position:length}'' | 在 \$string 中, 从位置 \$position开始提取长度为 \$length 的子串 | |
| | ''${string#substring}'' | 从变量 \$string 的开头, 删除最短匹配 \$substring 的子串 | |
| | ''${string##substring}'' | 从变量 \$string 的开头, 删除最长匹配 \$substring 的子串 | |
| | ''${string%substring}'' | 从变量 \$string 的结尾, 删除最短匹配 \$substring 的子串 | |
| | ''${string%%substring}'' | 从变量 \$string 的结尾, 删除最长匹配 \$substring 的子串 | |
| | ''${string/substring/replacement}'' | 使用 \$replacement, 来代替第一个匹配的 \$substring | |
| | ''${string//substring/replacement}'' | 使用 \$replacement, 代替所有匹配的 \$substring | |
| | ''${string/#substring/replacement}'' | 如果 \$string 的前缀匹配 \$substring, 那么就用 \$replacement 来代替匹配到的 \$substring | |
| | ''${string/%substring/replacement}'' | 如果 \$string 的后缀匹配 \$substring, 那么就用 \$replacement 来代替匹配到的 \$substring | |
| |