变量设置方式 | |
---|---|
|
“#”若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 “##”若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
|
“%”若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 “%”若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
|
"/"若变量内容符合“旧字串”则第一个旧字串会被新字串取代 "//"若变量内容符合“旧字串”则全部旧字串会被新字串取代 |
变量设置方式 | str没有设置 | str为空字串 | str已设置非空字符串 |
---|---|---|---|
var=${str-expr} | var=expr | var= | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var= | var=expr | var=expr |
var=${str:+expr} | var= | var= | var=expr |
var=${str=expr} | var=expr str=expr | str不变 var= | str不变 var=$str |
var=${str:=expr} | str=expr var=expr | str=expr var=expr | str不变 var=$str |
var=${str?expr} | expr输出至stderr | var= | var=$str |
var=${str:?expr} | expr输出至stderr | expr输出至stderr | var=$str |
bash默认组合键 | 执行结果 |
---|---|
Ctrl+C | 终止目前的命令 |
Ctrl+D | 输入结束(EOF),例如邮件结束的时候 |
Ctrl+M | 就是Enter键 |
Ctrl+S | 暂停屏幕的输出 |
Ctrl+Q | 回复屏幕的输出 |
Ctrl+U | 提示字符串下,将整列命令删除 |
Ctrl+Z | 暂停目前的命令 |
符号 | 意义 |
---|---|
* | 代表“0个到无穷多个“任意字符 |
? | 代表一定有一个任意字符 |
[] | 同样代表“一定有一个在括号内的字符”(非任意字符)。例如[abcd]代表“一定有一个字符”,可能是a,b,c,d这四个任何一个 |
[-] | 若有减号在中括号内时,代表“编码顺序内的所有字符”。例如[0-9]代表0-9之间所有的数字,因为数字的语系编码是连续的。 |
[^] | 若中括号内的第一个字符为指数符号(),那表示“反向选择”,例如[abc]代表一定有一个字符,只要是非a,b,c的其他字符就接受的意思 |
除了万用字符之外,bash环境中的特殊符号
符号 | 内容 |
---|---|
# | 注解符号:这个最常被使用在script当中,视为说明。在后的内容均不执行 |
\ | 跳脱符号:将“特殊字符或万用字符”还原成一般字符 |
| | 管线(pipe):分割两个管线命令的界定 |
; | 连续指令下达分隔符:连续性命令的界定(与管道符命令并不相同) |
~ | 使用者的主文件夹 |
$ | 取用变量前置字符:亦即是变量之前需要加的变量取代值 |
& | 工作控制(job control):将指变成背景下工作 |
! | 逻辑运算意义上的“非”not的意思 |
/ | 目录符号:路径分割的符号 |
>,>> | 数据流重导向:输出导向,分别是“取代”和“累加”得意思 |
<,<< | 数据流重导向:输入导向 |
' ' | 单引号,不具有变量置换的功能($变为纯文本) |
" " | 具有变量置换的功能($可保留相关功能) |
` ` | 两个"`"中间为可以先执行的指令,亦可使用$() |
() | 在中间为子shell的起始与结束 |
{} | 在中间为命令区块的组合 |