如何使用表达式作为标志参数



假设我有

tmp0=2
let tmp=2*$tmp0+3  #randomm example

可以写成$(cat something | cut -d " " -f$tmp),但我想知道的是如何写$(cat something | cut -d " " -f$(2*$tmp0+3))

基本上我想知道如何使用"数学表达式"作为标志参数

你其实很接近了:

$(cat something | cut -d " " -f$((2*tmp0+3)))

注意(())。事情就是这样做的。另外,请注意,我不需要变量上的$。在数学表达式中,变量不需要$,它的作用更像c。要从中获得值,您确实需要((前面的$。如果您不需要该值,而只需要其行为,则可以省略$。下面是另一个例子:

for ((i=0; i < 10; ++i)); do
echo $i
done

由于我不需要表达式中的值,我可以省略$.

最新更新