LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 872|回复: 8

请问echo 的 \n \c \t 是怎么用的?

[复制链接]
发表于 2003-10-5 00:29:34 | 显示全部楼层 |阅读模式
请问echo 的  \n  \c   \t   是怎么用的?

我试不出来。
# cat echo
#!/bin/bash
echo "hello:\c"
#echo \c "hello"\c
read name
echo $name
#
发表于 2003-10-5 00:35:25 | 显示全部楼层
\c一般是用在早期的unix的shell中!现在在linux中已经没有人在用.他相当于:echo -n,即,显示字符并不换行.
\t是我们所说的跳格键.
\n是回车符
用法举例:
  1. [/home/javalee/myshell]echo "abc[color=red]\c[/color]"
  2. abc[/home/javalee/myshell]echo -n "abc"
  3. abc[/home/javalee/myshell]
  4. #上述的-n和 \c的效果一样!
  5. [/home/javalee/myshell]echo "abc[color=red]\t[/color]abc"
  6. abc     abc
  7. [/home/javalee/myshell]echo "abc[color=red]\n[/color]abc"
  8. abc
  9. abc
  10. [/home/javalee/myshell]
复制代码
echo,是个很特别的命令,他即是一个外部的,也是shell内建的,
他的详细用法请:man echo
 楼主| 发表于 2003-10-5 00:45:17 | 显示全部楼层
谢谢,我改了,这样就行了:

# ./echo
hellok
ok
# cat echo
#!/bin/sh
echo -e "hello:\c"
read name
echo $name
# echo $0
tcsh
#
发表于 2003-10-5 00:48:39 | 显示全部楼层
不错~~
不过记住,你的脚本不要(最好不要)和系统已经有的文件重名!,像你的echo!:%
发表于 2003-10-10 14:24:06 | 显示全部楼层
不同的版本的shell,echo命令有一些差别,比如bash下,echo " \ a ",只回显,而tcsh下,却发出清脆的滴声,
也就是说,bash下的echo不支持此类转义,只能用printf命令了
发表于 2003-10-10 16:37:14 | 显示全部楼层
最初由 wanglej 发表
不同的版本的shell,echo命令有一些差别,比如bash下,echo " \ a ",只回显,而tcsh下,却发出清脆的滴声,
也就是说,bash下的echo不支持此类转义,只能用printf命令了

不是的,这种反斜线转义符在 shell 里都是一样的,bash 也不例外。但 bell 到底是以声音的形式、还是闪烁你的屏幕或者被系统完全忽略,这取决于具体软件的设置。比如控制台中的效果就是在文件 ~/.inputrc 中设置,而 vim 则在 ~/.vimrc 中设置。在你的机器上为什么没有声音,这就要具体检查了。

反正我不喜欢机器经常bell,所以我的 .inputrc 中有:
set bell-style visible
.vimrc 中有:
set visualbell
都是改成了让屏幕有所变化来提醒我,而不是发出声音。

唯一例外的是 email 通知,我还是保留用声音来提醒有新邮件到达。
 楼主| 发表于 2003-10-10 18:28:53 | 显示全部楼层
我用echo "\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a"怎么只出一声:ask
发表于 2003-10-10 21:11:26 | 显示全部楼层
没那么复杂!
在我的脚本里(KSH/BASH),我总是用\a来提示一下!wanglej兄说的没错!不同的shell对echo有不同的解释~~但是如果用printf来进行这类的转义~~,也未免大题小做了吧~~
发表于 2003-10-11 20:47:55 | 显示全部楼层
最初由 devel 发表
我用echo "\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a"怎么只出一声:ask


maybe overlapped
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表