“echo”通过sh和bash输出不同的答案

时间:2017-10-29 03:34:05

标签: linux bash shell echo dash-shell

我使用三种方式运行我的脚本,输出结果不同,你能解释一下为什么它会这样吗?谢谢!! 这是我的剧本

#!/bin/bash
#Program:
#     This program shows "Hello World!" in your screen.
echo -e "Hello World! \a\n" 
exit 0

如果我用bash和./喜欢 bash sh01.sh 运行它,输出就是

  

Hello World!

但是,如果我像 sh sh01.sh 那样使用sh,那就像

  

-e Hello World!

以下是其他一些信息

  1. 操作系统:Ubuntu 16.04.3
  2. type sh - >破折号

1 个答案:

答案 0 :(得分:1)

echo不是非常便携(即使Bash' echo在不同的操作系统上可能会有不同的行为,在编译Bash时可能会使用不同的默认选项)。您可以使用printf。根据{{​​3}}:

  

除非echo(作为第一个参数)和转义序列都被省略,否则无法在所有POSIX系统中移植-n。   printf实用程序可以移植来模拟echo实用程序的任何传统行为[...]