- 论坛徽章:
- 0
|
各位UNIX高手,请教一下这个奇怪的问题
最近突然喜欢上了shell,于是就到网上下载了《LINUX与UNIX SHELL编程指南》电子书籍学习,由于本人对于shell编程也是菜鸟一个,就首先尝试书籍中的脚本进行调试学习,在一个实例的调试学习中,发现脚本中的一个函数体user_level的return在执行的时候很蹊跷:
if [ "$MENU_USER" = "$USER" ]; then
FOUND="true"
case $PRIV in
yes|YES)
return 0
;;
按理说,执行了return 0之后应该结束这个函数,返回执行状态0,而不会继续执行user_level这个函数体的接下去的脚本代码,但是调试的情况是脚本执行了下面这段代码
if [ "$FOUND" = "false" ]; then
echo "Sorry $USER you have not been authorised to use this menu"
rm *.$$
exit 1
fi
于是就把这个函数体user_level单独拿出来写了一个简单的脚本执行,但是在这个脚本执行的结果确实意料之中的正常
附件中的menu2.sh就是书中实例
testmenu.sh是只包含了user_level函数的脚本
调试这2个脚本时,需要在目录下面首先存在一个鉴权文件priv.user(这个文件里面的内容是用户是否有权限yes/no)
小虾调试的环境是UNIX system V版本的
请多指教 |
|