| 变量设置方式 | |
|---|---|
|
|
“#”若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 “##”若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
|
|
“%”若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 “%”若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
|
|
"/"若变量内容符合“旧字串”则第一个旧字串会被新字串取代 "//"若变量内容符合“旧字串”则全部旧字串会被新字串取代 |
| 变量设置方式 | 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的起始与结束 |
| {} | 在中间为命令区块的组合 |











网友评论