echo -e "You SHOULD input 2 numbers, I will cross them!\n"
sh sh04.sh 显然是调用了sh。
如果你需要调用bash,一种是用 ./sh04.sh 这样会检查第一行并调用bash。
又或者运行 bash sh04.sh。
但是 echo 的 -e 参数怎么莫名其妙的变成 string 显示了
而且 -e 显示后,\n 竟然还能换行。
bash 的 echo 和 sh 的 echo 并不相同
该怎么知道哪里不同。
我在里面加上
type echo
man echo | grep '\-e'
之后
sh sh04.sh
得到的结果和当前 bash 的一样。
运行 sh 进去试试不就知道了
参考标准文档 http://pubs.opengroup.org/onlinepubs/000095399/utilities/echo.html
以及以前有人问过的 https://bugs.launchpad.net/ubuntu/+source/dash/+bug/72167
一般echo命令shell都会内置,默认不会调用PATH里面的
sh 的 echo -e 支持是有问题的, 我遇到过
谢谢 日了狗了
/bin/sh 指向 dash 不是 bash ...
么么哒,继续愉快的打代码。
已解决啦
debian 8.0 sid 的 /bin/sh 指向的是 dash 不是 bash
dash要尽可能支持sh本体的规范,所以很多扩展跟bash不太一样的。
好的,先留个印象,以后闲了再研究它。