Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 计算变量名时打印awk内的变量_Bash_Awk_Ksh - Fatal编程技术网

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

Bash 计算变量名时打印awk内的变量,bash,awk,ksh,Bash,Awk,Ksh,我有一个脚本,看起来像下面的例子。我有一个字母偏移量,我需要打印用偏移量计算的字母。我不知道如何用ksh读那封信 我期望的答案是字母_偏移量(1)=a,字母_偏移量(2)=v,字母_偏移量(3)=c,等等。我在循环中计算的偏移量 #!/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=$(e

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

我期望的答案是字母_偏移量(1)=a,字母_偏移量(2)=v,字母_偏移量(3)=c,等等。我在循环中计算的偏移量

#!/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 )) }')

将偏移量传递到awk脚本中,作为使用awk-v标志的awk变量使用:

LETTER=$(echo $LETTERS | awk -v offset=$LETTER_OFFSET '{print $offset}')

将偏移量传递到awk脚本中,作为使用awk-v标志的awk变量使用:

LETTER=$(echo $LETTERS | awk -v offset=$LETTER_OFFSET '{print $offset}')

您不需要在每次迭代中调用
awk
。您可以使用字母填充数组,然后使用
索引
访问其值:

#!/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

您不需要在每次迭代中调用
awk
。您可以使用字母填充数组,然后使用
索引
访问其值:

#!/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

请不要在这里的帖子中添加任何类型的txtspk。此外,您不需要添加“请帮助”或类似的绒毛。读者们知道你需要一些帮助,所以这类材料可以作为一种恳求的形式来阅读。如果可以,请保持简洁。awk不是shell,因此不要假设您可以在awk脚本中使用shell变量和语法。对待awk程序就像对待C程序一样——你可以从shell调用,但不是shell。请不要在这里的帖子中添加任何类型的txtspk。此外,您不需要添加“请帮助”或类似的绒毛。读者们知道你需要一些帮助,所以这类材料可以作为一种恳求的形式来阅读。如果可以,请保持简洁。awk不是shell,因此不要假设您可以在awk脚本中使用shell变量和语法。像对待C程序一样对待awk程序——可以从shell调用,但不是shell。