Skip to content

Commit b519f10

Browse files
committed
docs(readline): 加入感叹号扩展报错的例子
1 parent 7112c32 commit b519f10

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

docs/readline.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,20 @@ Goodbye H G
148148

149149
注意,`!string`语法只会匹配命令,不会匹配参数。所以`!echo H`不会执行`echo Hello World`,而是会执行`echo Goodbye`,并把参数`H`附加在这条命令之后。同理,`!echo H G`也是等同于`echo Goodbye`命令之后附加`H G`
150150

151+
由于”感叹号 + 字符“会扩展成以前执行过的命令,所以含有感叹号的字符串放在双引号里面,必须非常小心,有可能会报错。
152+
153+
```bash
154+
$ echo "I say:\"hello!\""
155+
bash: !\: event not found
156+
```
157+
158+
上面的命令会报错,原因是感叹号后面是一个反斜杠,Bash 会尝试寻找,以前是否执行过反斜杠开头的命令,一旦找不到就会报错。解决方法就是在感叹号前面,也加上反斜杠。
159+
160+
```bash
161+
$ echo "I say:\"hello\!\""
162+
I say:"hello\!"
163+
```
164+
151165
最后,按下`Ctrl + r`会显示操作历史,可以用方向键上下移动,选择其中要执行的命令。也可以键入命令的首字母,Shell 就会自动在历史文件中,查询并显示匹配的结果。
152166

153167
### history 命令

0 commit comments

Comments
 (0)