【发布时间】:2016-04-16 05:12:22
【问题描述】:
假设我有一个返回其参数总和的 KSH 函数,但如果未提供参数,它会提示用户输入:
#!/bin/ksh
sum() {
typeset v1=$1
typeset v2=$2
test -z "$v1" && { printf "please enter v1: "; read v1; }
test -z "$v2" && { printf "please enter v2: "; read v2; }
echo $((v1+v2))
}
我想将此函数的结果分配给一个变量,通常我会这样做
typeset result=`sum 3 4`
echo $result # 7
但是当我使用提示版本时
typeset result=`sum`
echo $result
它有两个不良影响:第一,提示消息please enter ... 不显示,第二,result 将包含文本please enter ... 而不仅仅是数字。
$ typeset result=`sum`
$ 1
$ 2
$ echo $result
please enter v1: please enter v2: 3
如何编辑函数sum,以便在未提供参数时将提示消息please enter ... 打印到标准输出,而不是返回result 变量?
【问题讨论】: