代码之家  ›  专栏  ›  技术社区  ›  user1342645

计算变量名时打印awk内的变量

  •  1
  • user1342645  · 技术社区  · 7 年前

    我有一个脚本,看起来像下面的例子。我有一个字母偏移量,我需要打印用偏移量计算的字母。我不知道如何用ksh读那封信。

    #!/bin/ksh
    #         1    2  3  4  5  6  7 8  9 10  11 12
    LETTERS=" a    v  c  d  g  r  g s  s a   g   f"
    LETTER_OFFSET="3";
    Letter=$(echo $LETTERS | awk '{print $((1 * $$LETTER_OFFSET )) }')
    
    2 回复  |  直到 7 年前
        1
  •  5
  •   JNevill    7 年前

    LETTER=$(echo $LETTERS | awk -v offset=$LETTER_OFFSET '{print $offset}')
    
        2
  •  2
  •   anubhava    7 年前

    你不需要调用 awk 在每次迭代中。您可以使用字母填充数组,然后使用 index

    #!/bin/ksh
    #         1    2  3  4  5  6  7 8  9 10  11 12
    letters=" a    v  c  d  g  r  g s  s a   g   f"
    
    # populate an array
    arr=($letters)
    
    offset=1
    while [ "$offset" -le 12 ]; do
       echo "${arr[$offset-1]}"
       let offset++
    done
    

    a
    v
    c
    d
    g
    r
    g
    s
    s
    a
    g
    f