共计 971 个字符,预计需要花费 3 分钟才能阅读完成。
字符串的条件判定
- 1. 字符串判定 一定要用双[[]]

- 2. 字符串判定 =~ 默认支持扩展正则表达式,这里注意双引号的使用
- 仅仅做是否包含时,有无双引号无区别。
- 但是利用其他扩展表达式时 双引号一定要去掉

- 锚定示例

- 多条件判定时 -o - a 使用时,不能使用双中括号

空格有无的差别
!的使用细节
!到目前为止 有两种意义 条件判定取反 历史命令的调用 两者的使用却别!后面是否接空格


find 命令中的 -exec command {} \; 尾部的空格一定要注意,一个都不能少不能少
正则表达式的元字符 在不同命令中的转义与非转义
sed 命令中模式的查找与替换
- sed 命令默认支持基本正则表达式

- 搜索时需要转义的字符 $ ! [. \‘“$ 的 示例:

^ 的示例

\ 的示例

‘的示例:注意 这里转义单引号也不成功


“的示例

- 其中!在命令使用 双引号时需要转义,单引号时则无需转义

- 替换时需要转义的字符 & \‘“
源文件中的内容

\ 的示例;
注意:在命令使用不同引号时的转义方式不一样

’”引号的示例:
注意:这里和搜索时一样 单引号无法用转义来实现,双引号可以

vim 命令行搜索替换默认支持基本正则表达式
- 搜索时需要转义的字符 $ [ \ ~ .
原文件内容:

- 如果 $ 不转义,被当成变量了

不加转义符的结果:

加转义符的结果:


[的示例:
不加 转义符的结果:显示 pattern 不存在,此时 [被当成了命令。


加 转义符的效果:
结果 a 后面的 [ 被成功替换成 ok 
~ 的 使用:原文中 ~ 的位置:
不使用转义符时:~ 被当成了某种引用
所以 只能使用 转义符来表达~ 本来的意义

结果:
- 替换式需要转义的字符 & ~ \
& 示例:
这里以替换 t 来演示:

不加转义符时,& 是完全引用搜索内容的意思,所以不用转义符内容无所变化


加上转义符 来看看效果:

t 顺利的被替换成了 &

~ 的示例:不加 转义符时:
t 被替换成了 &,原因时~ 直接引用了上次替换的结果,所以这里 t 就直接被替换成了 &

来看看加转义符的效果:


- \ 的示例:不加转义符时,内容直接被替换成了 \ 后面的内容。


再看看正确的写法:

t 成功被替换成了 \

最后,默认支持扩展正则表达式的:条件判断时,=~
注意单引号与双引号使用时 $ 的区别
- 双引号 或者不使用引号时 $ 则表示引用变量的意思,这里引号的不同和 echo 命令一样,单引号时完全引用,双引号是 智能型引用。

正文完
星哥玩云-微信公众号






