echo命令
功能: 输出文本行或变量
格式: echo 字符串
选项: -n 输出完后不换行
-e 使转义字符生效
转义字符:
\a 警示字符,通常是ASCII的BEL字符;
\b 退格;
\c 最后不加上换行符号,并且这个参数之后的任何字符都将被忽略掉;
\f 换行但光标仍旧停留在原来的位置(即竖直位置不变);
\n 换行且光标移至行首;
\r 回车符(光标移至行首,但不换行);
\t 水平制表符TAB;
\v 与\f相同;
\\ 反斜杠字符;
\0nnn 八进制数值;
echo后跟的字符串可以加引号,也可以不加引号。当不加引号时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。当加引号时,又分为两类:单引号和双引号。
单引号:
阻止对所有字符的转义,将所有字符都看作其字面上的意义。但是对echo的转义字符是由命令本身来处理的,如:
$ echo 'hello \n world $HOME' hello \n world $HOME $ echo -e 'hello \n world $HOME' hello world $HOME $
|
双引号:
双引号会处理括起来字符串中的转义字符、变量、算术、命令替换等,如果需要用到 $ " ' \ 等特殊字符的字面意义,都必须前置\ (这是用来告诉shell反斜杠后的字符即为字面上的意义)。
但对字符# 又视为普通字符,不再是注释的开头。
$ echo -e "hello \n world $HOME" hello world /home/huxuelin $ echo -e "hello \n world \$HOME" hello world $HOME $
|
printf命令
格式:printf format [ arguments ... ]
format: 描述格式规格的字符串
arguments: 参数列表
格式指示符:
% | 不进行转换。打印一个 %(百分号)。 |
d,i | 十进制整数 |
o | 无符号八进制整数 |
u | 无符号的十进制数 |
x,X | 无符号的十六进制数 |
f | 浮点格式 |
e,E | 浮点格式 |
g,G | %e或%f转换,%E或%F转换 |
c | ASCII字符 |
s | 字符串 |
b | 相对应的参数被视为含有要被处理的转义序列的字符串 |
格式符 %b 的用法:
$ printf "a string: %s\n" "a\nb" a string: a\nb $ printf "a string: %b\n" "a\nb" a string: a b $
|
规范格式:
- | 转换结果在字段中左对齐。 |
+ | 符号转换结果常以符号(+ 或者 -)开始。 |
空格 | 如果符号转换的第一个字符不是符号,结果的前缀将是空格。如果空格和 + 选项字符都显示,则忽略空格选项字符。 |
# | 此选项指定值转换到备用格式。对于 c、d、i、u 和 s 转换,选项没有作用。对于 o 转换,它增加精度来强制结果的第一数字是 a、0(零)。对于 x 和 X 转换,非零结果分别具有 0x 或 0X 前缀。对于 e、E、 f、g 和 G 转换,结果通常包含基数字符,即使基数字符后没有数字。对于 g 和 G 转换,结尾零不象通常一样除去。 |
0 | 对于 d、i、o、u、x、e、E、f、g 和 G 转换,前导零(跟在符号或底数的后面)用于填充字段宽度,将不用空格填充。如果显示 0(零)和 -(减号)选项,0(零)选项被忽略。对于 d、i、o、u、x和 X 转换,如果指定精度,0(零)选项将被忽略 |
阅读(5863) | 评论(0) | 转发(1) |