您的位置:首页 > 运维架构 > Shell

shell脚本控制字符

2011-02-18 15:48 369 查看
http://www.cublog.cn/u3/104504/showart_2063903.html

更改终端行为或文本显示. 控制字符都是以CONTROL + key的组合键.

在脚本文件中控制字符是不起作用的.

Ctl-B

退格 (非破坏性的).

Ctl-C

中断. 终结一个前台作业.

Ctl-D

从一个shell中退出 (类似于exit).

"EOF" (文件结尾:end of file).它也用于表示标准输入(stdin)的结束.

在控制台或xterm 窗口输入文本时, Ctl-D删除在光标下的字符.如果没有字符存在,Ctl-D 则会登录出该会话. 在一个xterm窗口中,则会产生关闭此窗口的效果。

Ctl-G

"哔" (beep).在一些老式的打字机终端上,它会响一下铃.

Ctl-H

"杀掉" (破坏性的退格). 删除光标前的一个字符===.

1 #!/bin/bash
2 # 在一个字符串里嵌入 Ctl-H.
3
4 a="^H^H"                  # 两个 Ctl-H (退格).
5 echo "abcdef"             # abcdef
6 echo -n "abcdef$a "       # abcd f
7 #以一个空格结尾  ^              ^ 退二格.
8 echo -n "abcdef$a"        # abcdef
9 #  现在没有尾部的空格            不退格了 (为什么?).
10                           # 结果和预料的不一样.
11 echo; echo
Ctl-I

水平制表符.

Ctl-J

新行(换一行并到行首).

Ctl-K

垂直制表符.

在控制台或xterm 窗口输入文本时, Ctl-K 会删除从光标所在处到行尾的所有字符。

Ctl-L

清屏 (重绘屏幕,清除前面的打印信息).这与clear命令作用相同.

Ctl-M

回车.

1 #!/bin/bash
2 # 多谢Lee Maschmeyer的例子.
3
4 read -n 1 -s -p $'Control-M leaves cursor at beginning of this line. Press Enter. \x0d'
5                                   # 是的, '0d'是Control-M的十六进制值.
6 echo >&2   #  '-s'使所有被键入的字符都不回显,
7            #+ 所以需要明确地键入新行.
8
9 read -n 1 -s -p $'Control-J leaves cursor on next line. \x0a'
10 echo >&2   #  Control-J 是换行.
11
12 ###
13
14 read -n 1 -s -p $'And Control-K\x0bgoes straight down.'
15 echo >&2   #  Control-K 是垂直制表符.
16
17 # 展示垂直制表符作用的更好的例子是:
18
19 var=$'\x0aThis is the bottom line\x0bThis is the top line\x0a'
20 echo "$var"
21 #  这和上面的例子一样工作.但是:
22 echo "$var" | col
23 #  这使行的右端比左端更高.
24 #  这也解释了为什么我们以一个换行符开始和结束 --
25 #+ 是为了避免屏幕显示混乱.
26
27 # 这是Lee Maschmeyer的解释:
28 # --------------------------
29 #  在第一个垂直制表符例子中 . . . 垂直制表符使还未打印回车就直接垂直打印下来。
30 #
31 #  这只在不能“倒后”的设备里才成立,比如在Linux控制台,
32 #
33 #  垂直制表符真正的意图是能垂直地往上移,而不是往下移.
34 #  可以在打印机里用于打印上标.
35 #  这个要点的作用被用于仿效垂直制表符正确的功能.
36
37 exit 0
Ctl-Q

解冻 (XON).

它解冻终端的标准输入.

Ctl-S

挂起输入 (XOFF).

它冻结终端的标准输入. (用 Ctl-Q 可恢复输入.)

Ctl-U

删除从光标到行首的一行输入.在某些设置里,Ctl-U 删除整行的输入,而不管光标的位置.

Ctl-V

当输入一个文本, Ctl-V允许插入控制字符。例如,下面两个命令是相等的:
1 echo -e '\x0a'
2 echo
Ctl-V 主要用于文本编辑.

Ctl-W

当在控制台或一个xterm窗口敲入文本时, Ctl-W 会删除从在光标处往后的第一个空白符之间的内容.在某些设置里, Ctl-W 删除光标往后到第一个非文字和数字之间的字符.

Ctl-Z

暂停一个前台作业.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: