Files
kaka111222333-kaka111222333…/_posts/2014-01-02-linux-print.md
2019-11-17 01:12:14 +08:00

138 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
layout: post
title: Linux打印
tags: Linux 打印
categories: Linux
---
* TOC
{:toc}
# echo
echo是Shell的一个内部指令用于在屏幕上打印出指定的字符串。
## 参数
`-n` 不要在最后自动换行
`-e` 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
>` \a` 发出警告声;
>
>` \b` 删除前一个字符;
>
>` \c` 最后不加上换行符号;
>
>` \f` 换行但光标仍旧停留在原来的位置;
>
>` \n` 换行且光标移至行首;
>
>` \r` 光标移至行首,但不换行;
>
>` \t` 插入tab
>
>` \v` 与\f相同
>
>` \\` 插入\字符;
>
>` \nnn` 插入nnn八进制所代表的ASCII字符
`help` 显示帮助
`version` 显示版本信息
## 原样输出字符串
若需要原样输出字符串(不进行转义),请使用单引号
echo '$name\"'
## 显示命令执行结果
echo `date`
# printf
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。
注意printf 由 POSIX 标准所定义,移植性要比 echo 好。
printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。
$printf "Hello, Shell\n"
Hello, Shell
$
printf 命令的语法
`printf format-string [arguments...]`
format-string 为格式控制字符串arguments 为参数列表。
这里仅说明与C语言printf()函数的不同:
* printf 命令不用加括号
* format-string 可以没有引号,但最好加上,单引号双引号均可。
* 参数多于格式控制符(%)时format-string 可以重用,可以将所有参数都转换。
* arguments 使用空格分隔,不用逗号。
注意根据POSIX标准浮点格式%e、%E、%f、%g与%G是“不需要被支持”。这是因为awk支持浮点预算且有它自己的printf语句。这样Shell程序中需要将浮点数值进行格式化的打印时可使用小型的awk程序实现。然而内建于bash、ksh93和zsh中的printf命令都支持浮点格式。
## 参数
`--help`:在线帮助;
`--version`:显示版本信息。
## 格式替代符
`%b` 相对应的参数被视为含有要被处理的转义序列之字符串。
`%c` ASCII字符。显示相对应参数的第一个字符
`%d`, `%i` 十进制整数
`%e`, `%E`, `%f` 浮点格式
`%g` `%e``%f`转换,看哪一个较短,则删除结尾的零
`%G` `%E``%f`转换,看哪一个较短,则删除结尾的零
`%o` 不带正负号的八进制值
`%s` 字符串
`%u` 不带正负号的十进制值
`%x` 不带正负号的十六进制值使用a至f表示10至15 %X 不带正负号的十六进制值使用A至F表示10至15
`%%` 字面意义的%
## 转义
`\a` 警告字符通常为ASCII的BEL字符
`\b` 后退
`\c` 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效而且任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符都被忽略
`\f` 换页formfeed
`\n` 换行
`\r` 回车Carriage return
`\t` 水平制表符
`\v` 垂直制表符
`\\` 一个字面上的反斜杠字符
`\ddd` 表示1到3位数八进制值的字符仅在格式字符串中有效 \0ddd 表示1到3位的八进制值字符