首页 > 学技术 > 技术网文 > Linux Shell > 正文

[精彩] 一个才知道的很NB的命令banner


来源 chinaunix.net 酷勤网整理

今天在看这个教学片: [unix教学,适合菜鸟].unix_video_03
学到一个新命令banner,反正偶以前还没在别的地方有过介绍

[color=red]banner: 将命令后跟的ASCII字符串以大字的方式显示输出[/color]

$>banner hello 
引用:
 #    #  ######  #       #        ####
 #    #  #       #       #       #    #
 ######  #####   #       #       #    #
 #    #  #       #       #       #    #
 #    #  #       #       #       #    #
 #    #  ######  ######  ######   ####



不知道为什么坛里贴出来这个大字显示就不正常。。。在sco和输出的文件及ftp到win中的文本都是显示正常的。。。。。
继续听介绍,有的系统可能就没这个banner命令。。各位老大有兴趣试试啊
偶的是sco505 ksh
个人感觉这个命令很NB啊,可以用在制作的shell前,再配上sleep...(有点遗憾的是好像不支持中文  :(-

hello.jpg



 tonyfu 回复于:2005-10-06 12:50:12

不能man,,,显示出来是倒着的,,
能否提供一些相关参数


 tonyfu 回复于:2005-10-06 12:52:04

-w 30

可以指定显示出来文本大小,,,,其他测试中,,,,


 styr 回复于:2005-10-06 13:13:44

我的显示出来是正常的哟,即是用"#"组成一个大字符,好像那种win下把字符转化为ASC图形一样。
我用banner -w 30 hello,它把 -w 30 hello分为了3段字符输出,即是把命令后以空格分隔字段,全部当为参数,。。。。
呵呵,就是因为书上没介绍,所以偶也是今天才知道的。听介绍有些unix和linux不支持,如rad linux 8.0就不支持该命令。在偶的sco505查了一下,该命令在/usr/bin/banner ,大小为4136

偶的sco居然有man,但看不懂,呵呵,E文太烂了。贴出来请大家翻译吧

引用:banner(C)

--------------------------------------------------------------------------------
banner -- print large letters 

Syntax
banner strings 
Description
The banner command prints its arguments (each up to 10 characters long) in large letters on the standard output. This is useful for printing names at the front of printouts. 
See also
echo(C) 
Standards conformance
banner is conformant with: 
AT&T SVID Issue 2; 
X/Open Portability Guide, Issue 3, 1990: note that the X/Open CAE Specification, Commands and Utilities, Issue 4, 1992 marks this command as withdrawn. 

1 May 1995 




 styr 回复于:2005-10-06 13:53:14

自已灌着玩玩,呵呵,顺便做了个简单的动态输出脚本

#!/bin/ksh

read string?"请输入将要图形化的字符:   "
banner $string > ~/$$
awk '{print ; system("sleep 1")}' ~/$$ && rm ~/$$



 tonyfu 回复于:2005-10-06 14:41:11

我的输出字符怎么都是躺着的,,郁闷


 styr 回复于:2005-10-06 14:56:54

什么系统? 输出是什么样的,贴出来看看,
就算是躺着的,也有想其它办法让它变立起来,呵呵


 寂寞烈火 回复于:2005-10-06 14:57:33

banner用大字母在标准设备上显示他的参数(每个可长达10个字符),简单的说,就是以标题格式显示字符串
PS:书上说的,我的linux不提供


 tonyfu 回复于:2005-10-06 15:17:04

我的是RH的,2.4.18-3,,,
本身不带,,不知是谁放进来的,在我放shell的目录里,,这里都是LINUX本身以外的命令

tony:/tmp>banner -w 30 1
      #
      ##################
      ###################
      #

tony:/tmp>
这个"1"躺着就出来了,,,


 styr 回复于:2005-10-06 15:19:45

看了老大的翻译,试了试,果然每行最多10个字符,因为每屏最宽也就是只能显示10个放大了的字符。

如果输入的是a-Z或A-Z,那输出就是大写的,但如果输入的是#@!^等ASC字符,(当然要最好用""或''括起来),也能放大输出

现在最想知道的就是怎么输出中文。。郁闷中。。。。。
(呵呵。终于碰到sco比linux牛一点点的了 ^_^)


 tonyfu 回复于:2005-10-06 15:28:51

我的输出有小写的,,,,中文提示没有字符集


 styr 回复于:2005-10-06 15:59:07

呵呵,那是谁给你带来的banner啊,谁做了好事不留名啊
不过居然RH也能用,但也居然有小写。。。我还想要小写都得不到啊。
还有这个-w 30 参数是设置输出大小吗,可是左看右看都看不出和30有什么关系。。。呵呵,这个1长的可真绝啊。应该是可以把它弄立的

至于中文无字符集那就真的难办了。。。


 tonyfu 回复于:2005-10-06 16:07:59

tony:/tmp>banner -w 20 1
    #
    ############
    #
tony:/tmp>banner -w 30 1
      #
      ##################
      ###################
      #

tony:/tmp>banner -w 40 1
         #
         #                    #
         ########################
         #########################
         #
         #
tony:/tmp>


 tonyfu 回复于:2005-10-06 16:09:14

tony:/tmp>banner 1
                             ####
                             ####                                                                  #
                             ####                                                                  ###
                             ####                                                                  #####
                             ############################################################################
                             ##############################################################################
                             ################################################################################
                             ##################################################################################
                             ###################################################################################
                             #####################################################################################
                             #######################################################################################
                             #########################################################################################
                             ###########################################################################################
                             ####
                             ####
                             ####
                             ####

tony:/tmp>

来一个没加参数的给你看看


 tonyfu 回复于:2005-10-06 16:10:37

太长了,,自动换行了,,有点乱


 tonyfu 回复于:2005-10-06 16:14:02

再来个大小写同时存在的,,
tony:/tmp>banner -w 30 Hello
      #                   #
      #####################
      #####################
      #           #       #
                  #
                  #
                  #
      #           #       #
      #####################
      #####################
      #                   #
          ####
        #########
       ##   #   ##
      #     #     #
      #     #    ##
       #    #  ###
        #   #####

      #                   #
      #####################
      #####################
      #                   #
      #####################
      #####################
          ####
        #########
       ##       ##
      #           #
      #          ##
       ##       ##
        #########
          ####
tony:/tmp>


 styr 回复于:2005-10-06 16:41:12

我的banner不需要加选项,因为后面的都作为参数显示出来了
不过实在没看出你的-w 20 30 40之间有什么联系。
看来在linux上banner跑的并不顺啊


 tonyfu 回复于:2005-10-06 16:44:35

看来这东西不适合在linux上跑,,总躺着肯定不行啊


 styr 回复于:2005-10-06 16:56:37

请老大们帮忙让它立起来,看似简单,做起来真的难哟


 styr 回复于:2005-10-06 17:49:26

做了个简单的由躺变立的脚本,效果感觉不太好,试试先
file就是banner输出的文件

$cat test.sh
#!/bin/ksh

fl=$(awk 'BEGIN{n=0} {if(length($0)>n) n=length($0)} END{print n}' file)
num=1
while ((num<=fl));do
cut -c"$num" file|tr '\n' ' ' ; echo ; ((num+=1))
done


$cat file
引用:  #
  ###################
  ###################
  #


$test.sh
引用:
# # # #
  # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #
 # #




 dingyi129 回复于:2005-10-06 21:26:46

我的debian sarge的banner输出的是躺着的
aix 5L输出的是站着的,有趣

banner 命令


用途
将 ASCII 字符字符串以大型字母的形式写至标准输出。

语法
banner String

描述
banner 命令将 ASCII 字符 String 以大型字母的形式写至标准输出。输出中的每行最长可达 10 大写或小写字符。输出时,所有字符显示为大写,其中小写输入字符看起来比大写输入字符稍小。

您输入的每个字在屏幕上出现时分别在一行上。当您在一行上显示一个以上的字时,请使用引号来指定哪些字将出现在一行上。

示例
要在工作站显示标题,请输入: 

banner SMILE!
要在一行上显示一个以上的字,请将文本括在引号中,如下: 

banner "Out to" Lunch
这将在一行上显示 Out to 而在下一行显示 Lunch。

文件

/usr/bin/banner 包含 banner 命令。 

相关信息
echo 命令。


在屏幕上以大字体显示文本(banner 命令)

banner 命令以大字体在您的屏幕上显示 ASCII 字符。输出中每一行的长度最多为 10 个数字(或大写字符或小写字符)。

例如,在提示符处输入以下命令:

banner GOODBYE!
系统以大字体在屏幕上显示 GOODBYE!。



 dradhzn 回复于:2005-10-06 22:42:29

i use banner command only when i was accessing  multiple servers , consider the following situation;
i got one application running on 6 web servers, 5 app servers and two database servers. i got to open 13 screens and work on it , by switching one to another window , it's could be very confused sometimes since i have to make sure i am in the correct server . what i do here is to use the banner command so that everytime the screen shows me the server name in BIG . 
# alias s='banner `hostname`'


 styr 回复于:2005-10-06 22:44:14

呵呵,算是各有各的好处,别有一番风味


 像把刀子 回复于:2005-10-07 08:11:49

经检验 我openbsd 
csh
成功实现


 tonyfu 回复于:2005-10-07 08:24:31

tony:/tmp>banner -w 30 12
      #
      ##################
      ###################
      #

      #
      ####               #
      ### ##             ##
      ###   ##            #
      ###    ###          #
      ###     ###        ##
      ###      ####    ####
      ###       ##########
         #         ###
tony:/tmp>ttp.sh aa







# # # #   # # # # # # # #
# #    # # # # # # #
# #    # # # # # # #
# #    #             #
# #      #
# #      #
# #        #
# #        # #
# #          # #
# #          # # #
# #            # # #
# #              # #
# #              # #
# #                # #
# #                # #
# #                # #
# #                #
# #              # #
 #              # #
     # #     # # #
      # # # # #
tony:/tmp>


 nizvoo 回复于:2005-10-08 10:17:14

Cygwin里头也有这个命令。


 mirnshi 回复于:2005-10-08 16:28:40

晕,发现新大陆了?

这条命令原来在SunOS上经常用,输出设备都是高速行打,一般都用于数据或者代码的首页。


 li2002 回复于:2005-10-08 16:48:45

早知道有这个了,但用处不大,几乎用不到,还不支持中文


 styr 回复于:2005-10-08 17:02:37

用处还是有点的,配合sleep,可以在自制的脚本前做个logo 
摆酷嘛 ^_^   在退出时再来个 BYE MY LOVE


 blueprint 回复于:2005-10-08 17:06:13

我下载一个,挺好玩的,^_^
$ banner 12 13
  @   @@@@@@@
 @@  @       @
  @          @
  @    @@@@@@
  @   @
  @  @
 @@@ @@@@@@@@@
               
               
               
  @   @@@@@@@
 @@  @       @
  @          @
  @    @@@@@@
  @          @
  @  @       @
 @@@  @@@@@@@


 styr 回复于:2005-10-08 17:35:23

可从上到下延时输出
#!/bin/ksh 

read string?"请输入将要图形化的字符:   " 
banner $string > ~/$$ 
awk '{print ; system("sleep 1")}' ~/$$ && rm ~/$$


哪位老大能做几个花样输出啊,比如从上到下.从左至右,或从右至左....
那样看起来更是cool


 xchen301 回复于:2005-10-09 20:34:37

好玩~~~


 sway2004009 回复于:2005-10-10 10:00:49

good 
但是我的是redhat 9的
里面没有。
不知道到哪里有下载这个程序的。
谢谢。


 styr 回复于:2005-10-10 10:20:07

哪里下载不知道了,sco上就是自带的,试试sco的能不能在redhat用


 z33 回复于:2005-10-11 15:52:08

bash-2.05a$ banner
Message: test
                                                                                #### 
                                                                                #### 
                                                                                #### 
                                         ######################################################## 
                                     ############################################################ 
                                   ############################################################## 
                                 ################################################################ 
                                ################################################################# 
                               ################################################################## 
                              ################################################################### 
                              ################################################################### 
                              ###########                                       #### 
                              #########                                         #### 
                              ########                                          #### 
                               #######                                          #### 
                               ###### 
                                ##### 
                                 ##### 
                                   #### 
                                      ### 
                                          
                                                ################## 
                                           ############################ 
                                         ################################ 
                                       #################################### 
                                     ######################################## 
                                   ############################################ 
                                  ############################################## 
                                 #############         ####         ############# 
                                #########              ####              ######### 
                                #######                ####                ####### 
                               ######                  ####                  ###### 
                               #####                   ####                   ##### 
                              #####                    ####                    ##### 
                              ####                     ####                     #### 
                              ####                     ####                     #### 
                              ####                     ####                     #### 
                              ####                     ####                     #### 
                              ####                     ####                    ##### 
                               ###                     ####                   ##### 
                               ####                    ####                  ###### 
                                ###                    ####                ####### 
                                ####                   ####              ######### 
                                 ####                  ####         ############# 
                                  ####                 ######################### 
                                   #####               ######################## 
                                     #####             ###################### 
                                       ####            #################### 
                                                       ################## 
                                                       ################ 
                                                       ########### 
                                                                   
                              #############                     ######## 
                              #############                  ############## 
                              #############                ################## 
                              #############              ###################### 
                                 ########               ######################## 
                                #######                ########################## 
                                ######                ############################ 
                               ######                ################        ###### 
                               #####                 ##############            #### 
                              #####                 ##############              #### 
                              #####                 #############               #### 
                              ####                  #############               #### 
                              ####                  ############                #### 
                              ####                 #############                #### 
                              ####                 #############                #### 
                              ####                #############                ##### 
                              ####                #############               ##### 
                              #####              ##############              ###### 
                               ####              #############              ###### 
                               #####            ##############             ####### 
                                #####          ##############            ######## 
                                ######       ################          ############# 
                                 ###########################           ############# 
                                  ##########################           ############# 
                                   ########################            ############# 
                                     #################### 
                                       ################ 
                                           ######### 
                                                     
                                                                                #### 
                                                                                #### 
                                                                                #### 
                                         ######################################################## 
                                     ############################################################ 
                                   ############################################################## 
                                 ################################################################ 
                                ################################################################# 
                               ################################################################## 
                              ################################################################### 
                              ################################################################### 
                              ###########                                       #### 
                              #########                                         #### 
                              ########                                          #### 
                               #######                                          #### 
                               ###### 
                                ##### 
                                 ##### 
                                   #### 
                                      ### 
                                          
bash-2.05a$


 styr 回复于:2005-10-11 16:58:00

看不出来长的像什么...不过就是牛......


 freekiss 回复于:2005-10-11 17:00:09

我刚刚试了一下,果然管用,呵呵,的确很有意思,可以在脚本中使用。


 styr 回复于:2005-10-11 18:38:36

如在脚本中用出些花样,如随机变换动画效果,呵呵,NB..............


 大蚂蚁 回复于:2005-10-11 20:50:24

red hat linux 7.3 没有


 styr 回复于:2005-10-11 21:27:40

呵呵,没有枪没有炮,只能自已造了 ^_^


 gao_linfeng 回复于:2005-10-13 11:57:40

在linuxsir上问的,别人说用如下命令就可以实现横着出现.他的系统是debian



banner hello | tilt270 -s


 baijun777 回复于:2005-10-28 02:46:23

有趣,做个记号。
看什么时候能站起来。


 unixboy1106 回复于:2006-07-27 15:50:43

好像banner是没法支持中文输入的




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=622193
转载请注明作者名及原文出处



收藏本页到: