mysql 命令行输出对齐_shell进阶之路之step-1:终端打印输出

预热

在终端打印相关信息是脚本程序经常遇到的需要,shell支持多种形式的显示输出,后文详细介绍。

脚本文件的运行方式

脚本文件的执行通常有两种方式:

1.脚本文件名作为命令行参数

bash someScript.sh

2.赋予脚本文件可执行权限,直接在终端执行:

chmod 755 someScript.sh

./someScript.sh

注意:

脚本文件的起始处一般需要通过以下方式制定脚本解释器的路径:

#!/bin/bash

表示该脚本解释器Bash的路径。

该语句必须写在脚本文件的开头,如果写在其他语句之后就被认为是注释。#之后的语句是不被解释器执行,只用来做相关注释说明。

如何做

echo命令是终端打印最简单的命令。默认情况下,echo会在输出语句末尾添加换行。

比如:

8f12e9a31320e61d1e11021c3d1ea6d4.png

或者:

b8b1734917965421eb3c6864a534039e.png

再或者:

efabfe318f8437a917387cb2ce3e3b63.png

上面的三种形式都打印出了hello shell,第一种没有任何修饰,第二种hello shell两侧添加了双引号,第三中添加了单引号。

上面的三种形式,结果上看似乎都一样,实际上有大区别:

  • 没有单双引号修饰的情形中,不能使用分号,因为分号是shell中命令的分隔符。
f6689ddd853997073ea73fe69acb3f3e.png
  • 双引号允许解释器解析字符串中的特殊字符;
7b32eed27fd6f4ea462c8a8182abe540.png

!, 感叹号在shell中有特殊含义,叫做事件提示符,如果要用双引号的形式输出就需要用转义:

708685ef5b0206568ffe6256d1988b36.png
  • 单引号会禁止这种解析特殊字符的行为,字符串会原样输出;
347476565269f41f7e6e41417f81c420.png

另外一种在终端打印消息的方式是使用printf,它使用和C语言中printf相同的参数,考虑下面的例子:

57f9f6d3596e57331099008ff973a5f4.png

prfintf支持格式化字符串,格式化字符串可以指定字符宽度,左右对齐方式等。在默认情况下,printf在输出末尾不添加换行符,如果需要换行需要通过显示指定:

#!/bin/bash

# printTest.sh

printf "%-5s %-10.2f" pig01 10000.123445

printf "%-5s %-10.2f" pig02 100000.123445

printf "%-5s %-10.2f" pig03 1000000.123445

69ee619039529eec386322c37513013a.png

上面的语句中%-5s指定字符串的宽度为5个字符,并且左对齐(-表示左对齐),如果不指定-,则右对齐。%-10.2f额外指定小数点后保留两位数字。

扩展

echo 转义

使用echo的双引号输出时,如果字符串包含了转义字符,用参数-e开启转义:

echo -e "abc"

彩色输出

脚本可以通过转义字符在终端打印彩色输出:

d4bd40e49668564653657932e3e6a106.png
  • 需要用-e开启转义
  • e表示转义开始符号
  • 转义符号和颜色设置参数之间用[隔开
  • m表示结束非常规字符序列
  • [和m之间的是字符是颜色组合,中间用分号隔开

可选择的颜色编码如下:

f656a02e1eecc31b49231f570537b37f.png
  • 前景颜色各数字是对应背景颜色减去10
  • 结束非常规字符序列的"m"要紧跟前面的数字,不能有空格
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值