用busybox里的ash作为shell时,如果直接在串口通过/bin/sh或者/bin/ash打开终端,而不登陆的话。常常遇到放在/etc/profile不能生效的问题。但如果登陆就可以。其实这个问题解决起来很简单,只需要在启动的命令前加上一个“-”,变成“-/bin/sh”或“-/bin/ash”就行了。具体原因,是因为ash在执行的时候,首先会判断是否是登陆shell,如果是才会读取profile文件。具体说来就是通过登陆、或者是执行的脚本前面有个“-”的。具体参考ash的源代码: