QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 593|回复: 0

关于shell函数的问题

[复制链接]
发表于 2003-12-3 14:20:58 | 显示全部楼层 |阅读模式
在机械工业出版社出版的《LINUX 与 UNIX Shell 编程指南》一书的第211页,有一个例子:
以下函数是一个真正的提示函数,提供了显示信息及缺省回答方式。缺省回答即用户按下回车键时采取的动作。case语句用于捕获回答。
continue_prompt()
# continue_prompt
to call: continue_prompt "string to display" default_answer
{
_STR=$1
_DEFAULT=$2
# check we have the right params
if [ $# -lt 1 ]; then
        echo "continue_prompt: I need a string to display"
        return 1
fi
# loop forever
while :
do
        echo -n "$_STR [Y..N] [$_DEFAULT]:"
        read_ANS
        # if user hits return set the default and determine the return value,
        # that's a : then a <space> then $
        : ${_ANS:=$_DEFAULT}
        if [ "$_ANS" = "" ]; then
                case $_ANS in
                Y) return 0 ;;
                N) return 1 ;;
                esac
        fi
        # user has selected something
        CASE $_ans IN
        y|Y|Yes|YES)
                return 0
                ;;
        n|N|No|NO)
                return 1
                ;;
        *) echo "Answer either Y or N, default is $_DAFAULT"
                ;;
        esac
        echo $_ANS
done
}
但在实际使用时,发现并不能实现,除了删掉:
       if [ "$_ANS" = "" ]; then
                case $_ANS in
                Y) return 0 ;;
                N) return 1 ;;
                esac
        fi
还有些问题,请问有谁知道应该怎么改?因为找不到英文原版进行核对,所以希望能有朋友帮助,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 06:20 , Processed in 0.039287 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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