如何使用+ =帮助我

时间:2016-07-14 11:32:49

标签: arrays shell sh

当我输入ps -p $$时我得到了

PID TTY       TIME COMMAND 
2788 pts/19    0:00 ksh
 #!/bin/ksh
    echo "enter timezones"
    read -a arr3 //how to append the values to this array dynamically
                  #as i want to give values like x1 x2 x3 x4 .....    "
    set -A arr4
    set -A tzarr1 nst3 ast4ad ast4 est5ed cst6cd mst7md cst6 mst7 pst8pd    
    set -A tztim1 12.0 12.5 13.5 13.5 14.5 15.5 15.5 16.5 16.5 
    p=0
    for i in "${arr3[@]}"
    do
    for j in "${tzarr1[@]}"
    do
    if [ "$i" = "$j" ];then
    arr4+=(${tztim1[p]})) //(shows error `('unexpected) how to append values
    break
    fi
    p=$(($p+1))
    done
    done

我的代码所做的是它要求用户输入timezones作为输入,我将输入设为ast4 cast6cd ...就像这样的“tzarr1”和给定的输入将存储在arr3数组中,现在for循环搜索tzarr1中的值,其值为arr3,当它获得匹配时,它会因为不需要而中断与剩余元素相匹配。现在,当我增加p变量时,它保存tzarr1中匹配键的索引值,以便使用该索引值,我可以存储从tztim1arr4的值。

1 个答案:

答案 0 :(得分:1)

创建一个新数组,其中包含arr4的内容和您要添加的项目。

arr4=( "${arr4[@]}" "${tztim1[p]}" )

<击>

你有一个额外的括号;删除它。

arr4+=(${tztim1[p]}))
      ^            ^^
      |            ||
      +------------+|
         matched    |
                    unmatched