在shell中调用Property的正确语法是什么

时间:2012-10-02 17:53:07

标签: linux bash shell unix aix

我正在尝试运行以下脚本:

#!/bin/sh
. ./test.prop

for ((i=0; i<10;i++)
do
    echo $F($i)
done  

它来源的文件包含参数分配:

F1=20
F2=30
F3=40
.
.
.

脚本的所需输出为

10
20
30
40
.
.
.

$F($i)的正确语法是什么?或者我不能简单地使用它?

4 个答案:

答案 0 :(得分:3)

您可以使用间接参数扩展:

for ((i=0; i<10; i++)); do
    f="F$i"
    echo "${!f}"
done

答案 1 :(得分:3)

为什么不使用数组?

F=(10 20 30 ...)

for i in {0..9}; do
    echo ${F[i]}
done  

答案 2 :(得分:2)

您应该使用eval

eval "echo \$F$i"

Eval用于评估然后运行命令,允许您动态生成命令。通过转义第一个美元符号,它在生成的命令中显式使用,而转义第二个美元符号的注释允许我们将其值扩展为用于生成变量名称的数字。因此,假设$i包含值“1”,生成的命令为echo $F1

希望这有助于=)

答案 3 :(得分:1)

您可以使用grep命令:

grep ^F prop.test | awk -F= '{print $2}'

这将以F开头的所有行打印并在=之后打印该数字。