1

假设变量 a 的值为 42,

b=18+$a
The value of b should be 60

但我没有得到 60 的值。而是打印 18+42。我该怎么做 ?

新查询:

grep -F "$name" -A1000 filename | sed -n '1p;19p;24p'

假设让 a=10,b=20,c=30。在上面的 grep 命令中我可以使用 '$ap;$bp;$cp' 而不是 '1p;19p;24p' 吗?

另一件事,我给出了-A1000。这意味着从 1p 开始考虑到 1000 行,对吗?我需要在不提供数字的情况下搜索整个文件。何

4

2 回答 2

6

重击:

b=$((18+a))
echo "value of b is $b"

或者

let b=18+a
echo "value of b is $b"
于 2012-06-05T10:25:35.683 回答
1

Bash 中的任何数学运算都涉及使用 $(())

所以,除了,你会做: -

b=$((18 + a))

请注意,a 之前的“$”不是必需的。Bash 中数学运算的更多示例是:-

a=$((17+1))
b=$((100-a))
c=$((a*b))
d=$((c/b))
echo $((10 * 1024 * 1024)) # Echoes the number bytes in 10 MB
于 2012-06-05T10:33:52.573 回答