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
不是一种通用编程语言。