sh/bash/dash/ksh/zsh等Shell脚本
-
chai21cn
- 帖子: 8
- 注册时间: 2008-01-07 0:55
#1
帖子
由 chai21cn » 2008-01-17 17:10
例子代码如下
代码: 全选
#!/bin/bash
# Embedding Ctl-H in a string.
a="^H^H" # 两个 Ctl-H's (backspaces).
echo "abcdef" # abcdef
echo -n "abcdef$a " # abcd f
# Space at end ^ ^ 两次退格.
echo -n "abcdef$a" # abcdef
# 结尾没有空格 没有 backspace 的效果了(why?).
# 结果并不像期望的那样.
echo; echo
实际结果:
代码: 全选
abcdef
abcdef^H^H abcdef^H^H
期望结果:
代码: 全选
abcdef
abcd fabcdef
这个是什么原因呀,谁能来指点一二
-
chai21cn
- 帖子: 8
- 注册时间: 2008-01-07 0:55
#2
帖子
由 chai21cn » 2008-01-17 17:13
代码: 全选
#!/bin/bash
# Embedding Ctl-H in a string.
a="^H^H" # Two Ctl-H's (backspaces).
echo "abcdef" # abcdef
echo -n "abcdef$a " # abcd f
# Space at end ^ ^ Backspaces twice.
echo -n "abcdef$a" # abcdef
# No space at end Doesn't backspace (why?).
# Results may not be quite as expected.
echo; echo
这是原版的
-
patrickhe
- 帖子: 681
- 注册时间: 2005-07-21 19:13
- 来自: Peking, China
-
联系:
#3
帖子
由 patrickhe » 2008-01-17 19:00
^H 指的是退格字符,而不是一个字符串“^H”。
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#4
帖子
由 BigSnake.NET » 2008-01-17 19:16
^H 用 Ctrl-v Ctrl-h 的方式输入
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
chai21cn
- 帖子: 8
- 注册时间: 2008-01-07 0:55
#6
帖子
由 chai21cn » 2008-01-17 20:19
好了,已经找到原因了
我是用gvim写的这个脚本,按Ctrl-H,它会自动退一格,所以我就用的^H的字符串
现在经你们提醒重新用cat命令来写的脚本,按Ctrl-H,它不会退一格了而且显示^H
在gvim中开了语法高亮的话能看出Ctrl-H生成的^H和字符串^H的颜色是不同的
-
patrickhe
- 帖子: 681
- 注册时间: 2005-07-21 19:13
- 来自: Peking, China
-
联系:
#7
帖子
由 patrickhe » 2008-01-18 11:13
chai21cn 写了:好了,已经找到原因了
我是用gvim写的这个脚本,按Ctrl-H,它会自动退一格,所以我就用的^H的字符串
现在经你们提醒重新用cat命令来写的脚本,按Ctrl-H,它不会退一格了而且显示^H
在gvim中开了语法高亮的话能看出Ctrl-H生成的^H和字符串^H的颜色是不同的
在 vi 中,进入 insert mode,ctrl+v ctrl+h 也可以输入 backspace 字符。