shell printf命令echo命令主要用于字符串的输出,可以是不要引号但不支持转义,双引号可用于转义字符,printf命令也是输出命令但是要比echo 的移植性好,制定字符串的宽度,左右对其方式;可以格式控制字符,指定参数列表,参数空
echo命令主要用于字符串的输出,可以是不要引号但不支持转义,双引号可用于转义字符,
printf命令也是输出命令但是要比echo 的移植性好,制定字符串的宽度,左右对其方式;可以格式控制字符,指定参数列表,参数空格区分,语法结构:
printf fORMat-string [arguments...]
#!/bin/bash#author:zrC#自动换行的对比echo -e "OK! \n" # -e 开启转义 \n 开启换行echo "is a echo"echo "----------------------------"printf "Good , shell,\n,python"#输出:OK! is a echo----------------------------good , shell,,Python
#!/bin/bash#author:zrcprintf "%-10s %-8s %-4s\n" id name ageprintf "%-10s %-8s %-4s\n" 1 jeey 18printf "%-10s %-8s %-4.2f\n" 2 tom 19printf "%-10s %-8s %-4.2f\n" 3 king 20printf "%-10s %-8s %-4.2f\n" 4 quren 33.333#输出id name age 1 jeey 18 2 tom 19.003 king 20.004 quren 33.33
%-10s %-8s %-4s\n 都是针对参数类别的格式化%-10s -- 第一位参数必须是string字符串(-10 表示宽度为10个字符且左对齐,没有-表示右对齐;如果不是字符和字符串 就报错 )%-8s -- 第二位参数必须是string字符串(-8 表示宽度为8个字符且左对齐,没有-表示右对齐;如果不是字符和字符串 就报错 )%-4s -- 第三位参数必须是string字符串(-4 表示宽度为4个字符且左对齐,没有-表示右对齐;如果不是字符和字符串 就报错 )%-4.2f -- 第三位参数必须是float浮点(-4.2 表示宽度为4个格式化小数,保留后面两位,没有-表示右对齐;如果不是整数 就报错 )
更多案例:
#!/bin/bash#author:zrc#没有引号printf %s'\n' aaaaa #单引号printf '%d %s\n' '123456' 'aaaaa'#双引号printf "%d %s\n" '123456' 'bbbbb'#超过指定参format-string数,会被重用printf "%d %s\n" '123456' 'aaaaa' '456789' 'ccccc'#如果没有参数,那么%s用NULL代替,%d用0代替printf "%s --- %d"'\n'#%c 自动截取字符串的第一个字符作为结果输出printf "%d %c\n" '123456' 'bbbbb'
%d %s %c %f 都是针对参数类别的格式化%d -- 十进制整数(对应参数位必须是整数,如果不是就报错 )%c --Char字符(对应参数位必须是字符串或者字符型,如果不是就报错 )
序列 | 说明 |
---|---|
\a | 警告字符,通常为ASCII的BEL字符 |
\b | 后退 |
\c | 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 |
\f | 换页(formfeed) |
\n | 换行 |
\r | 回车(Carriage return) |
\t | 水平制表符 |
\v | 垂直制表符 |
\\ | 一个字面上的反斜杠字符 |
#!/bin/bash#author:zrc#显示字符串echo "this is string"#显示转义字符echo "\"this is string\""#显示结果定向到文件,符号>>追加到文件echo "this is string" > file#显示输入变量read name echo -e "this is ${name} \n" # -e开启转义 -n换行echo -e "this is ${name} \c" # -e开启转义 -c不换行read passWord -p "请输入一段文字:" -n 6 -t 5 -secho -e "\n password is $password"参数说明: -p 输入提示文字 -n 输入字符长度限制(达到6位,自动结束) -t 输入限时 -s 隐藏输入内容
--结束END--
本文标题: Shell学习【printf与echo】
本文链接: https://lsjlt.com/news/244801.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0