LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 731|回复: 3

问一个弱弱的问题,关于bash的问题

[复制链接]
发表于 2006-5-16 20:52:04 | 显示全部楼层 |阅读模式
我自己定制了一个小型的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?
我甚是疑惑啊!
发表于 2006-5-17 20:12:38 | 显示全部楼层
最好把变量用引号括起来
if [ -d "$SCRIPT_DIR" ];

环境应该是/bin/bash
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 10:14:57 | 显示全部楼层
用引号括起来是防止变量中有空格.
因为我确信该变量中没有空格,所以我没有加.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 10:46:45 | 显示全部楼层
问题已经解决,谢谢各位!
http://www.linuxsir.cn/bbs/showthread.php?t=256816
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表