Shell 输出命令

377 阅读1分钟

echo命令

Shell的echo指令用于字符串的输出

  1. 显示变量 read命令从标准输入中读取一行,并把输入行的每个字段的值指定给shell变量
#! /bin/sh
read name
echo "$name It is a test"

以上代码保存为test.sh,name接收标准输入的变量,结果将是

sh test.sh
OK      #标准输入
OK It is a test     #输出
  1. 显示换行/不显示换行
echo -e "ok! \n"  #-e 开启转义
echo "It is a test"
echo -e "OK! \c"
echo "It is a test"

输出结果:

Ok!

It is a test
Ok! It is a test
  1. 显示解雇定向至指定文件

echo "It is a test" > myfile

  1. 原样输出字符串,不进行转义或取变量值(用单引号)

echo $name\"

输出结果:

$name"

  1. 显示命令执行结果

echo date

printf命令

printf 命令模仿C程序库里的printf()程序。printf由POSIX(表示可移植操作系统接口)标准所定义,因此使用printf比echo移植性好。printf使用引用文本或空格分隔的参数。默认printf不会像echo自动添加换行符,我们可以手动添加\n.

#!/bin/bash
printf "%-10s %-8s %-4s\n" 姓名 名别 体重kg
printf "%-10s %-8s %-4.2f\n" 完颜洪烈 男 60.2340
printf "%-10s %-8s %-4.2f\n" 郭靖 男 65
printf "%-10s %-8s %-4.2f\n" 黄蓉 女 45

执行脚本,输出结果

姓名     名别   体重kg
完颜洪烈 男      60.23
郭靖     男      65.00
黄蓉     女      45.00
%s %c %d 都是格式替换符
%-10s指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来
%-4.2f 指格式化为小数,其中.2值保留2w位小数