Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Shell:如何在数字之间做减号_Bash_Shell_Numbers_Echo - Fatal编程技术网

Bash Shell:如何在数字之间做减号

Bash Shell:如何在数字之间做减号,bash,shell,numbers,echo,Bash,Shell,Numbers,Echo,我想从一个数字中减去一组值 我试过: DATACOME=1013 DATAREF=1010 1020 var=$((DATACOME - DATAREF)) echo "$var" 3 它仅适用于$DATAREF中的第一个值,并输出3,而不是: echo "$var" 3 -7 简单的方法是将值列表保存为数组dataref,然后使用for循环对其进行迭代: datacome=1013 dataref=(1010 1020) for num in "${dataref[@]}"; do

我想从一个数字中减去一组值

我试过:

DATACOME=1013
DATAREF=1010
1020

var=$((DATACOME - DATAREF))
echo "$var"
3
它仅适用于
$DATAREF
中的第一个值,并输出
3
,而不是:

echo "$var"
3
-7

简单的方法是将值列表保存为数组
dataref
,然后使用
for
循环对其进行迭代:

datacome=1013
dataref=(1010 1020)

for num in "${dataref[@]}"; do
   echo $((datacome - num))
done

如果不想使用数组,可以将值存储在由空格字符分隔的字符串中,并使用
awk

datacome=1013
dataref="1010 1020" 

awk -v num="$datacome" '{
    for (i = 1; i <= NF; i++) {
        print num-$i
    }
}' <<< "$dataref"

或者在使用文件存储值时:

#input_file:
#1010
#1020

datacome=1013

while read num; do
   echo $((datacome - num))
done < input_file    

有很多方法可以做到这一点。另外,请不要使用大写变量,因为它们可能会与环境和内部shell变量冲突。

简单的方法是将值列表保存为数组
dataref
,然后使用
for
循环对其进行迭代:

datacome=1013
dataref=(1010 1020)

for num in "${dataref[@]}"; do
   echo $((datacome - num))
done

如果不想使用数组,可以将值存储在由空格字符分隔的字符串中,并使用
awk

datacome=1013
dataref="1010 1020" 

awk -v num="$datacome" '{
    for (i = 1; i <= NF; i++) {
        print num-$i
    }
}' <<< "$dataref"

或者在使用文件存储值时:

#input_file:
#1010
#1020

datacome=1013

while read num; do
   echo $((datacome - num))
done < input_file    

有很多方法可以做到这一点。另外,请不要使用大写变量,因为它们可能会与环境和内部shell变量冲突。

回答得很好。你也可以提到卑诗省,但在其他方面很完美。回答得很好。你也可以提到卑诗省,但在其他方面却很完美
bash
不是通用编程语言。请选择其他语言
bash
不是一种通用编程语言。