网站建设资讯

NEWS

网站建设资讯

Shell学习【printf与echo】-创新互联

Shell printf命令

成都创新互联专注于企业营销型网站建设、网站重做改版、淮阴网站定制设计、自适应品牌网站建设、H5页面制作成都做商城网站、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为淮阴等各大城市提供网站开发制作服务。

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

printf格式化

#!/bin/bash
#author:zrc
printf "%-10s %-8s %-4s\n" id name age
printf "%-10s %-8s %-4s\n" 1 jeey 18
printf "%-10s %-8s %-4.2f\n" 2 tom 19
printf "%-10s %-8s %-4.2f\n" 3 king 20
printf "%-10s %-8s %-4.2f\n" 4 quren 33.333
#输出
id         name     age 
1          jeey     18  
2          tom      19.00
3          king     20.00
4          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个格式化小数,保留后面两位,没有-表示右对齐;如果不是整数 就报错 )

printf案例

更多案例:

#!/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字符(对应参数位必须是字符串或者字符型,如果不是就报错 )


prinf转义符

序列 说明
\a 警告字符,通常为ASCII的BEL字符
\b 后退
\c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
\f 换页(formfeed)
\n 换行
\r 回车(Carriage return)
\t 水平制表符
\v 垂直制表符
\\ 一个字面上的反斜杠字符

Shell echo命令

#!/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 -s
echo -e "\n password is $password"
参数说明:
 -p 输入提示文字
 -n 输入字符长度限制(达到6位,自动结束)
 -t 输入限时
 -s 隐藏输入内容


网页标题:Shell学习【printf与echo】-创新互联
文章起源:http://cdweb.net/article/dochoc.html