linux一搏(打印)---高手勿喷

linux中打印有echo和printf

一、echo

echo是用于终端打印的基本命令,默认情况下,echo会在每次调用后添加一个换行符。如果要忽略换行,可以echo后面,字符窜之前加上"-n".

echo后面打印的内容,可以是双引号,单引号,或者什么也不加(如果带有特殊字符时,例如"!",需要在"!"前面加上转义字符"\",或者不要把"!"放在双引号里)

$ echo hello world !

 

或者

$ echo 'hello world !'
 


或者

$ echo "hello world \!"

 

每种方法副作用:

  1. 使用不带引号的echo时,你没法在索要显示的文本中使用,因为在bash shell 中被用作命令定界符。
  2. 以echo hello ; hello为例, echo hello被视为一个命令,第二个hello则被视为另一个命令
  3. 使用带单引号的echo时,Bash不会对单引号中的变量(如$var)求值,而只是按照原样显示。

echo接受双引号字符窜内的转义序列作为参数,格式为 echo -e "包含转义序列的字符窜"

例如:

$ echo -e "1\t2\t3"
1	2	3

打印彩色输出,可以使用转义序列实现

$ echo -e "\e[1;31m This is color text \e[0m"
This is color text

\e[1;31 将颜色设为红色,\e[0m 将颜色置回,你只需要把31变成你想要的颜色码就行了

(0=重置 ,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色)

 

二、printf

     printf使用引用文本或者由空格分隔的参数。我们可以在printf中使用格式化字符窜,还可以指定字符窜的宽度,左右对其方式。

     在默认情况下,printf需要手工添加换行符"\n"

$ printf "Hello world \n"

 

打印星星,创建hello.sh

 

#!/bin/bash
#文件名:hello.sh

printf "%10s\n"   "*"
printf "%8s %3s\n"  "*" "*"
printf "%6s %7s\n"  "*" "*"
printf "%4s %11s\n"  "*" "*"
printf "%2s %15s\n"  "*" "*"
printf "%4s %11s\n"  "*" "*"
printf "%6s %7s\n"  "*" "*"
printf "%8s %3s\n"  "*" "*"
printf "%10s\n"


运行

$ sh hello.sh

效果如下

$ sh hello.sh
         *
       *   *
     *       *
   *           *
 *               *
   *           *
     *       *
       *   *
         *

 

你可能感兴趣的:(linux终端打印)