当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]在看<高级Bash脚本编程指南>遇到的一例子 实际和期望输出有很大的差异
帖子发表于 : 2008-01-17 17:10 

注册: 2008-01-07 0:55
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
例子代码如下
代码:
#!/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


这个是什么原因呀,谁能来指点一二


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-01-17 17:13 

注册: 2008-01-07 0:55
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
代码:
#!/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

这是原版的


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-01-17 19:00 
头像

注册: 2005-07-21 19:13
帖子: 681
地址: Peking, China
送出感谢: 0 次
接收感谢: 0 次
^H 指的是退格字符,而不是一个字符串“^H”。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-01-17 19:16 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
^H 用 Ctrl-v Ctrl-h 的方式输入


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-01-17 20:12 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
引用:
时间的流逝速度与年龄成正比
呵呵呵呵。。。。。。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-01-17 20:19 

注册: 2008-01-07 0:55
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
好了,已经找到原因了

我是用gvim写的这个脚本,按Ctrl-H,它会自动退一格,所以我就用的^H的字符串
现在经你们提醒重新用cat命令来写的脚本,按Ctrl-H,它不会退一格了而且显示^H

在gvim中开了语法高亮的话能看出Ctrl-H生成的^H和字符串^H的颜色是不同的


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-01-18 11:13 
头像

注册: 2005-07-21 19:13
帖子: 681
地址: Peking, China
送出感谢: 0 次
接收感谢: 0 次
chai21cn 写道:
好了,已经找到原因了

我是用gvim写的这个脚本,按Ctrl-H,它会自动退一格,所以我就用的^H的字符串
现在经你们提醒重新用cat命令来写的脚本,按Ctrl-H,它不会退一格了而且显示^H

在gvim中开了语法高亮的话能看出Ctrl-H生成的^H和字符串^H的颜色是不同的


在 vi 中,进入 insert mode,ctrl+v ctrl+h 也可以输入 backspace 字符。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译