|
我自己定制了一个小型的linux, 系统里面含有一个完整的bash,系统已经包含基本的linux的管理命令,正在处于写启动脚本的阶段,通过sysinit包提供的init启动系统,并执行一些系统启动时的脚本.
在这里我要问的是
1,执行脚本的环境是不是bash?
2,如果是,为什么同一个脚本在启动阶段和进入系统后在bash中执行的结果是两种结果,(进入系统用的是single user mod , 即把init的参数传给grub)
脚本如下
#!/bin/bash
PATH=/sbin:/bin
export PATH
SCRIPT_DIR="/etc/rc$1.d"
echo "SCRIPT_DIR=$SCRIPT_DIR"
if [ -d $SCRIPT_DIR ]; then
echo Exist!
else
echo Not exist!
fi
我在里面加入提示信息,把$1 echo 出来,显示是2
但是echo "SCRIPT_DIR=$SCRIPT_DIR"的结果是 ".dtc/rc2",很明显/etc/rc2.d后面的两个字母".d"把"/e"给覆盖了.
但是我从单用户模式进入系统这样执行./rc 2
显示
Exist!
也就是说可以正常执行.
请各位高手指点!
难道启动的时候脚本的执行环境不是bash?
我甚是疑惑啊! |
|