gpt4 book ai didi

linux - 回显整个数组,但不回显其中的元素 - Shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:13 24 4
gpt4 key购买 nike

我在 Shell Script BASH 中有这个结构

i=0
while read linha_reg
do
REG_ADDRESS=$(echo $linha_reg | cut -f1 -d ' ')
[ $REG_ADDRESS -lt 16] && T[$i]=$REG_ADDRESS || S[$i]=$REG_ADDRESS
i=$((i+1))
done < register.txt

while read linha_inst
do
RS=$(echo $linha_inst | cut -f4 -d ' ')
RS=$(echo $RS | cut -f1 -d ',')

RS_INDEX=${RS:2:2}
RS_LETTER=${RS:1:1}

[ "$RS_LETTER" == "s" ] && echo ${S[$RS_INDEX]}
done < instruction.txt

当我在终端上执行此代码段时,回显 ${S[$RS_INDEX]} 中只有一个空格。但是,如果我写

echo ${S[@]}

它按照 echo 的要求输出整个数组。如果我写

echo ${S[3]}

也不起作用。

我迷路了,因为我不知道这是什么原因,我希望它只返回一个元素,就像大片段那样,但由于未知原因它没有输出。

干杯

最佳答案

要添加到数组,请使用 var+=(value)喜欢@chepner suggested .使用 var[$i]=value导致稀疏数组,其中一些索引未定义。

还有:

  • Use More Quotes™ !
  • 在 Bash 中你可以使用 here strings喜欢some_command <<< "$variable"避免 echo .
  • 当你做 a && b || c , c如果任一个 运行ab失败。为避免这种情况,请使用标准

    if a
    then
    b
    else
    c
    fi
  • 使用单个 =[ (参见 help test)。

关于linux - 回显整个数组,但不回显其中的元素 - Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25534744/

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