gpt4 book ai didi

linux - 操作优先级

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:23 25 4
gpt4 key购买 nike

我想将命令的结果存储到数组变量中。我遇到了麻烦,因为命令本身包含必须在执行之前解析的变量。例如:

for ((i=1; i<=4; i++)); do
NEXT=$(( i + 1 ))
MYARRAY[i]=$(cat $VARIABLE | uniq | sed -n '$NEXTp')
done

“cat $VARIABLE”命令正在正确处理。问题在于“$NEXT”替换后紧跟一个“p”字符。如何在执行命令之前强制脚本解析 $NEXT 变量并将结果存储在 MYARRAY[i] 中?

谢谢。

最佳答案

典型的解决方案是:${NEXT}p

请注意,您所做的事情相当不典型。更常见的是使用如下方式分配给数组:

IFS='
'
MYARRAY=( $( < $VARIABLE uniq | sed -n 1,5p ))

这将分配 MYARRAY[0],您的原始代码不会这样做,但我不清楚这是故意的还是试图调整索引。与往常一样,UUOC 是不值得鼓励的,尽管 uniq 可以将 $VARIABLE 作为参数,但使用重定向是一个很好的习惯用法,因此我在示例中使用它来演示一种在 99.9% 出现的情况下消除 UUOC 的简单方法。

关于linux - 操作优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23409618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com