本人刚刚开始学习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正解,感谢~
shell中echo的问题
-
- 帖子: 6
- 注册时间: 2011-03-15 15:33
shell中echo的问题
上次由 JamesHuang0331 在 2011-10-21 23:45,总共编辑 1 次。
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: shell中echo的问题
Ubuntu 的默认 shell 是 bash,而 sh 是 dash。为了效率,echo 通常是 shell 内置的。可能是 dash 的 echo 实现不支持 -e 选项。
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: shell中echo的问题
case "$(echo -e -n)" in
-e|-n)ECHO=/bin/echo;;
*)ECHO=echo;;
esac
-e|-n)ECHO=/bin/echo;;
*)ECHO=echo;;
esac
代码: 全选
] ls -ld //
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: shell中echo的问题
我的程序设计书上也写着换行不用-e比较好。。。因为不通用 
