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 国际许可协议进行许可