Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15936686
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-03-21 16:53:15

当目前大部份的Unix或Linux都拥有命令时,它们大都以"-n"的方式来控制系统不要换新行。但并不是所有的系统都支持这种方式,也有部份的是利用"\c"的方式来控制,其他较简单的系统就不理会换新行这个动作。

想了解你的echo是属于那一种吗? 请在命令列下键入下列指令,并观察系统显示的信息即可得到答案:

$ echo -n "The rain in Spain"; echo " falls mainly on the Plain"

如果echo命令是支持使用"-n"的参数,系统会显示:

The rain in Spain falls mainly on the Plain

如果不支持的话,系统显示信息如下:

-n The rain in Spain
falls mainly on the Plain
使用者看到脚本的正确输出结果,是十分重要的。特別是当程序的互动性越来越频繁时,就更能显示出它的重要性。

脚本源代码

有许多的办法可以解决echo这个问题,将像这篇文章有许多篇一样。这个程序非常简洁,是笔者喜爱的程序之一:

function echon
{
  echo "$*" | awk '{ printf "%s" $0 }'
}

你可能不喜欢使用awk命令,如果你的系统有printf命令,则程序可改写为:

echon()
{
  printf "%s" "$*"
}

如果系统没有printf命令,也不想使用awk的话,你可以改用tr命令:

echon()
{
  echo "$*" | tr -d '\n'
}

这段程序利用tr来完成换行的动作。tr对这个程序而言,是一个非常简单而且有效率的解决方法。

运行脚本

现在我们可以利用echon来取代echo,在输入完成后,别忘了按下enter键:

echon "Enter coordinates for satellite acquisition: "

阅读(598) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~