分页: 1 / 1

shell中echo的问题

发表于 : 2011-10-21 22:34
JamesHuang0331
本人刚刚开始学习shell编程,新手真心求教

写了一个test.sh文件,文件里面只有一句话:
echo -e "a\tb"
不过现在运行这个shell文件的时候,发现了一个问题。
如果直接sh test.sh的话,显示:
-e a b
如果将test.sh文件更改权限后运行./test.sh的话,显示:
a b
echo命令不是应该加-e选项才能输出转移字符么?为什么直接sh test.sh会默认输出转移字符呢?
PS:本人是ubuntu11.10,前天试是这个结果,今天刚刚重装,还是这个结果。难道是我电脑的问题么。。。

问题解决,2L正解,感谢~

Re: shell中echo的问题

发表于 : 2011-10-21 23:12
lilydjwg
Ubuntu 的默认 shell 是 bash,而 sh 是 dash。为了效率,echo 通常是 shell 内置的。可能是 dash 的 echo 实现不支持 -e 选项。

Re: shell中echo的问题

发表于 : 2011-10-23 11:28
tusooa
case "$(echo -e -n)" in
-e|-n)ECHO=/bin/echo;;
*)ECHO=echo;;
esac

Re: shell中echo的问题

发表于 : 2011-10-23 11:44
枫叶饭团
我的程序设计书上也写着换行不用-e比较好。。。因为不通用 :em06