Shell 终端打印

作者: lujg12 | 来源:发表于2018-04-21 13:27 被阅读0次

    参考书籍 Linux shell 脚本攻略


    能够执行打印的方法有很多,格式也各不相同,主要有如下几个:

    • echo
    • printf
    echo命令

    echo是用于终端打印的基本命令。

    • 默认情况下,echo在每次调用后会添加一个换行符。可使用标志-n来忽略结尾的换行符。
    • 可接受双引号字符串内的转义序列作为参数,采用echo -e "包含转义序列的字符串"的形式。如: echo -e "1\t2\t3"
    • 三种打印方法:
    $ echo "Hello world" #带双引号的文本
    Hello world
    $ echo Hello world #不带双引号的文本
    Hello world
    $ echo 'Hello world' #带单引号的文本
    Hello world
    

    每种方法的副作用如下:

    • 如果希望打印 !号,就不要将其放入双引号,或者加入转义字符\!转义
    $ echo Hello world!
    $ echo 'Hello world!
    $ echo "Hello world\!"
    
    • 不带引号的echo中,无法在要显示的文本中使用分号;
    • 使用单引号的echo时,Bash不会对单引号中的变量求值,而只是原样显示
    $ var=3
    $ echo '$var'
    $var
    $ echo "$var"
    3
    
    printf命令

    printf使用的参数和C语言中的printf函数一样。

    • printf使用引用文本或由空格分隔的参数。
      printf可使用格式化字符串,可以指定字符串的宽度、左右对其方式等。
    • 不会自动添加换行符,需要在需要的时候手动添加
    #!/bin/bash
    #文件名: printf.sh
    printf "%-5s %-10s %-4s \n" No Name Mark
    printf "%-5s %-10s %-4.2f\n" 1 Sarach 80.3456
    printf "%-5s %-10s %-4.2f\n" 2 James 90.9989
    

    格式化输出如下:

    No    Name       Mark
    1     Sarach     80.35
    2     James      91.00
    
    • %s %c %d %f都是格式替代符,其所对应的参数可以置于带引号的格式字符串之后。
    • %-5s-表示左对其,若不用-指定对其形式,则默认使用右对其形式。数字指定了宽度。

    相关文章

      网友评论

        本文标题:Shell 终端打印

        本文链接:https://www.haomeiwen.com/subject/gkcxlftx.html