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