Bash 变量
It’s all about shell script.
每次写到 shell, 都会要去翻手册, 自己也写一遍希望是能够加深记忆吧.
shell variable
| format | usage | example | 
|---|---|---|
| ${var} / $var | 前者更可读 | - | 
| ${井var} | 返回 ${var} 字符串长度 | var="abc";echo ${井var} -> 3 | 
| ${var:start} | 截取字符串 | var=abc;echo ${var:1} -> bc | 
| ${var:start:len} | 截取字符串 | var=abc;echo ${var:1:1} -> b | 
| ${var#str} | 删除 var 从左 尽量短 地匹配 str 后的字符串 | bc";echo ${var#*b}; -> bbc | 
| ${var##str} | 删除 var 从左 尽量长 地匹配 str 后的字符串 | bc";echo ${var#*b}; -> c | 
| ${var%str} | 从右… 尽量短 … | |
| ${var%%str} | 从右… 尽量长 … | |
| ${var:-str} | 如果 var 为空或未定义, 则返回 str | |
| ${var:=str} | 如果 var 为空或未定义, 则返回 str 并将 str 赋值给 var | |
| ${var:+str} | ||
| ${var:?str} | ||
| ${var/substring/newstring} | 返回 var 中第一个 substring 被替换成 g 的结果 | var='abbc';echo ${var/b/HH} -> aHHbc | 
| ${var//substring/newstring} | 返回 var 中所有 substring 被替换成 g 的结果 | var='abbc';echo ${var//b/HH} -> aHHHHc | 
| $(command) | 相当于 command | $(date) | 
| $((算术表达式)) | 计算 | echo $((1+1)) -> 2 | 
special variable
| name | usage | 
|---|---|
| $0 | current script name / function name | 
| $num | 某个位置的参数 | 
| $# | 传入参数的个数 | 
| $* | 所有参数(作为一个参数) | 
| $@ | 所有参数(作为一个个独立参数) | 
| $? | 上一条命令的执行结果 | 
| $$ | current script execute pid | 
| $! | 后台运行的最后一个进程的 pid (Expands to the process ID of the most recently executed background (asynchronous) command.) | 
| $- | 当前 shell 使用的参数 (???) | 
| $_ | 之前命令的最后一个参数 | 
about tricks
Control-C
Control-C is a common computer command., Control-C -> echo $? -> 1
discovery
发现以下的 TODO 我想要学的, 在 man bash 中都有
TODO
- about if-else
- about for-in
- about while-break
- about [[]]
- about rawinput
- about array
- about tricks
references
- man bash
- shell 变量详解
原文作者: Pike.SZ.fish
原文链接: https://page.pikeszfish.me/2017/08/24/all-about-shell-script/
许可协议: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可