博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一章:The Missing Code Library--8.避免不合要求的echo方法
阅读量:6437 次
发布时间:2019-06-23

本文共 1037 字,大约阅读时间需要 3 分钟。

hot3.png

大部分流行的Unix和Linux版本都有一个echo命令。它包含有-n选项来禁止换行,但并不是所有的版本都一样。其中一些版本的echo命令使用\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
确保脚本输出是按照要求呈现给用户是非常重要的,并且随着脚本交互性的增强,这点会变得越来越重要。

代码:

#!/bin/sh# 本书中有非常多的方法来解决这种echo问题。其中我最喜欢的方式非常简洁:function echon{    echo "$*" | awk '{printf("%s", $0)}'  #注意,原文中,是没有括号的,经测试,我是用的awk版本不支持,所有加上括号,仿C}# 你可能想要避免上面的内部调用awk命令的方法,不过,如果你有一个用户级的printf命令的话# 也可以用它来代替:echon(){    printf "%s" "$*"}# 如果你没有printf命令,也不想调用awk,那么请使用tr命令:echon(){    echo "$*" | tr -d "\n"     # 参数请参考手册页}# 这个tr命令的版本是非常有效简单的
运行脚本:
使用该脚本时,只需要在调用echo命令时用用echon简单的替换下就行了,这样就不会自动换行了。
#!/bin/sh  function echon {     echo "$*" | awk '{printf("%s", $0)}' }  echon "Enter coordinates for satellite acquisition:" echo "HH" exit 0
输出:
./poorEcho.sh 
Enter coordinates for satellite acquisition:HH

转载于:https://my.oschina.net/u/578519/blog/107844

你可能感兴趣的文章
65.4. Other GUI - phpOraAdmin
查看>>
【设计模式】—— 适配器模式Adapter
查看>>
build.xml引用其它文件的任务
查看>>
POJ2121 Inglish-Number Translator
查看>>
第 25 章 OpenManage
查看>>
Linux命令行上执行操作,不退回命令行的解决方法
查看>>
【AngularJS】—— 8 自定义指令
查看>>
零元学Expression Blend 4 - Chapter 36 来玩捉迷藏吧!!!看看ScrollBar的Disabled与Hidden之差异...
查看>>
AlarmManager机制和系统唤醒锁的总结
查看>>
零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)
查看>>
158.5. manifests
查看>>
glyphicon halflings regular ttf 报错
查看>>
公众号临时预览链接转永久链接怎么操作
查看>>
DAU新解
查看>>
Java实现简易的文件的迁移器
查看>>
golang ffmpeg 做网络直播
查看>>
Windows 7平台安装Oracle Client 10g版本时需要做的一点变更
查看>>
Oracle Online Redefinition在线重定义(下)
查看>>
扩展GridView控件——为内容项添加拖放及分组功能
查看>>
PHP命名空间学习笔记
查看>>