2 qq 34262060 qq_34262060 于 2016.03.19 23:47 提问

shell中程序调试问题 不知道哪错了 求解答

#!/bin/bash
function a
{
read -p "input: " value
echo -n "doubling the value "
return $[ $value * 2 ]
}

a
echo "the new value is $?"

我想让输入的数的两倍大于255时,程序输出的值为1
如果我输入的数的两倍不大于255那么输出的值是正确的
可是现在,比如当我输入200的时候 结果为144
输入310的时候,结果为108,这是为什么?
我的程序哪里错了?

5个回答

Longyu_wlz
Longyu_wlz   2016.03.20 11:33
已采纳

[longyu@debian: 二 3月 22 11:31:10] $ vi char_num.sh
[longyu@debian: 二 3月 22 11:31:36] $ sh char_num.sh
input:200
doubling the value:
400
[longyu@debian: 二 3月 22 11:31:45] $ sh char_num.sh
input:300
doubling the value:
600

Longyu_wlz
Longyu_wlz 回复江大大叫我来巡山: 你是想让它判断返回值是否合法吗?
一年多之前 回复
qq_34262060
qq_34262060 我是想让它输入200的时候,结果为1啊,因为 返回值不是0到255吗,可是200的两倍是400,超出了返回值的范围,所以我希望它判定为错误,返回值为1 啊。。你懂理解了吗- -
一年多之前 回复
devmiao
devmiao   Ds   Rxr 2016.03.19 23:52
Longyu_wlz
Longyu_wlz   2016.03.20 10:54

declare -i value

Longyu_wlz
Longyu_wlz   2016.03.20 11:31

#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/texlive/2015/bin/x86_64-linux

number () {
read -p "input:" value
echo -n "doubling the value"
return $(($value * 2))
}
number
echo ":\n$?"

Longyu_wlz
Longyu_wlz   2016.03.20 11:32

0-255都是返回值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!