本文介绍了“回声”通过sh和bash输出不同的答案的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用三种方式运行了脚本,但输出却不同,您能向我解释一下为什么这样工作吗?谢谢!!
这是我的脚本

I ran my script using three ways and the output was different, could you explain to me why it works like that? Thanks!!Here is my script

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

如果我通过bash和./来运行它,如 bash sh01.sh ,则输出为

And if i run it by bash and ./ like bash sh01.sh the output is

但是,如果我使用 sh sh01.sh 之类的sh会是

However, if i use sh like sh sh01.sh it would be like

还有其他信息


  1. 操作系统:Ubuntu 16.04.3

  2. type sh->破折号


推荐答案

echo 不太便于携带(甚至Bash的 echo 在不同的OS上的行为也可能不同,这些OS在编译Bash时可能使用不同的默认选项。您可以使用 printf 。根据:

echo is not very portable (even Bash's echo may behave differently on different OSes which may use different default options when compiling Bash). You can use printf. According to posix:

这篇关于“回声”通过sh和bash输出不同的答案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 07:52