Unix 重定向输出时出现Shell脚本错误
我对shell脚本有点怀疑 我有一个程序(a.out),我运行了几次,它将一个特定的值打印到终端上。我需要编写一个shell脚本来捕获这个程序的输出并添加输出 我写了下面的脚本Unix 重定向输出时出现Shell脚本错误,unix,shell,Unix,Shell,我对shell脚本有点怀疑 我有一个程序(a.out),我运行了几次,它将一个特定的值打印到终端上。我需要编写一个shell脚本来捕获这个程序的输出并添加输出 我写了下面的脚本 value=0 total=0 for((i=0;i<10;j++)) do value=`./a.out $i` total=`expr $total + $value` done echo value is $value total is $total value=0 总数=0 对于((i=0;i
value=0
total=0
for((i=0;i<10;j++))
do
value=`./a.out $i`
total=`expr $total + $value`
done
echo value is $value total is $total
value=0
总数=0
对于((i=0;i),这里有几个用于处理浮点数学的bash函数:
看看这个例子,可能是这样的:
$tmp_total = $(float_eval "$value + $total")
$total = $tmp_total
大多数shell无法执行浮点运算,但您可以调用到bc
:
add () { printf "%s + %s\n" $1 $2 | bc -l; }
total=0.0
for ((i=0; i<10; i++)); do
total=$(add $total $(./a.out $i))
done
add(){printf”%s+%s\n“$1$2 | bc-l;}
总计=0.0
for((i=0;我想你是指for循环中的i++
,而不是j++
),而/a.out
并没有给你一个双精度输出,而是给你一行文本(你可以将其存储为字符串,然后将其解释为数字)。