zoukankan      html  css  js  c++  java
  • Linux shell之打印输出

    经常需要和shell命令打交道,但是一直没有系统的学习,接下来会花1到2个月的时间系统的学习一下shell命令,接下来就开启shell命令的奇妙旅行吧。本章主要介绍shell的打印输出。

    知识要点

    • shell脚本都是以#!/bin/bash开头;这是固定的写法,其中/bin/bash是bash命令的路径。
    • 一般都会通过chmod授予shell脚本的可执行权限。
    • 在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。
    • 在shell中如果用双引号("")作为打印输出的内容时,如果双引号中有特殊字符需要在特殊字符前加上转义字符\,当然也可以使用单引号或者不使用引号直接输出,使用单引号或者不使用就不需要用到转义字符。

    格式替代符

    有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。

    %-5s:表示5个字符宽度,其中的-表示左对齐

    %-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。

    整形:

    %d:整数的参数会被转成一有符号的十进制数字

    %u:整数的参数会被转成一无符号的十进制数字

    %o:整数的参数会被转成一无符号的八进制数字

    %x:整数的参数会被转成一无符号的十六进制数字, 并以小写abcdef表示

    %X:整数的参数会被转成一无符号的十六进制数字, 并以大写ABCDEF表示


    浮点型数

    %f double型的参数会被转成十进制数字, 默认取小数点以下六位, 四舍五入

    %e double型的参数以指数形式打印, 有一个数字会在小数点前, 六位数字在小数点后, 而在指数部分会以小写的e来表示.

    %E 与%e作用相同, 唯一区别是指数部分将以大写的E来表示.

    %g double型的参数会自动选择以%f或%e的格式来打印, 其标准是根据欲打印的数值及所设置的有效位数来决定.

    %G 与%g作用相同, 唯一区别在以指数形态打印时会选择%E格式.


    字符及字符串:

    %c 读字符串的第一个字符 

    %s 输出指定宽度的字符内容.

    %p 如果是参数是"void *"型指针则使用十六进制格式显示

    打印输出

    在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。

    echo

    [root@localhost tmp]# echo "hello word"
    hello word

    printf

    默认printf是不换行的

    [root@localhost tmp]# printf "hello word"
    hello word[root@localhost tmp]# 

    需要换行加上 参数

    [root@localhost tmp]# printf "hello word
    "
    hello word
    [root@localhost tmp]# 

    编写shell脚本

     vim scrip.sh

    #!/bin/bash
    printf "%-5s %-10s %-4s
    " No Name Mark;
    printf "%-5s %-10s %-4.2f
    " 1 aaa 10.111;
    printf "%-5s %-10s %-4.2f
    " 2 bbb 20.146;

    授予脚本执行权限:chmod u+x scrip.sh

    如果使用echo就不能用格式替代符

    #!/bin/bash
    echo No Name Mark;
    echo 1 aaa 10.111;
    echo 2 bbb 20.146;

    注意事项

    在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。

    -e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数

    -n:忽略末尾的换行符

    不使用-e参数
    [root@localhost tmp]# echo "1
    2"
    1
    2
    使用-e参数
    [root@localhost tmp]# echo -e "1
    2"
    1
    2

    转义序列:

    /n:换行

    /t:tab键

    彩色输出

    字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色

    背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色

    echo -e "e[1;32m hello word e[0m"

    e[1;32m:将字体颜色设为绿色,e[0m:将颜色重置

    总结

    如果输出的内容涉及到特殊字符建议使用printf来输出。

  • 相关阅读:
    使用JDBC连接MySql时出现:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration
    Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
    mysql-基本命令
    C# 监听值的变化
    DataGrid样式
    C# 获取当前日期时间
    C# 中生成随机数
    递归和迭代
    PHP 时间转几分几秒
    PHP 根据整数ID,生成唯一字符串
  • 原文地址:https://www.cnblogs.com/zgq123456/p/9862613.html
Copyright © 2011-2022 走看看